모르는 사람과 이미지를 공유하고 싶습니다.
아는 사람이 아닌 사람 사진을 공유하고 싶습니다.
필요했기 때문에 만들어 보았습니다.
대화의 샘플은 이쪽
URL을 표시하면이 이미지를 표시하는 QR 코드가 표시됩니다.
이번에 사용한 것
-Google App Script(메인)
-Google Charts API(QR 코드)
-line bot (완료된 QR 코드 링크 전송)
Google Charts API(QR 코드)
var outputUrl = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
실제로 만들고 싶지만 지금은 무리이므로 API에 의존합니다.
크기와 보내고 싶은 내용을 URL로 지정하는 것만으로 QR 코드를 나타냅니다.
굉장히
언제 없을지 모르겠다.
↓공식
Google Charts Infographics QRcode
linebot 정보
기본적으로 앵무새 반환의 bot입니다.
자세히 알고 싶다면 "linebot GAS 앵무새 반환"을 통해 조사하면 얼마든지 나옵니다.
userID를 얻고 텍스트를 보내는 것보다 리플레이 토큰을 얻고 거기에 던지는 것이 더 이상 제한과 관련이 없을 것임을 최근에 알았습니다.
json 알면 할 수있는 일이 증가합니다.
전용
실제로 사용할 때는 라인의 액세스 토큰과 폴더의 ID를 자신의 것으로 해 넣어 주세요
모르면 적당히 구그하면 나옵니다.
흐름으로는
전송된 이미지를 GoogleDrive에 저장하고 누구나 볼 수 있도록 한 후 공유 URL을 GoogleChartsAPI에 넣어 회신합니다.
function doPost(e) {
//eがundefinedの場合動作を終了する
if (typeof e === "undefined"){return}
var events = JSON.parse(e.postData.contents).events;
events.forEach(function(event) {
if(event.type == "message") { onMessage(event,follow(event)); }
});
}
//LINE Messaging APIのチャネルアクセストークン
var LINE_ACCESS_TOKEN = "自分のラインアクセストークン";
//画像を保存するフォルダーID
var GOOGLE_DRIVE_FOLDER_ID = "保存先のフォルダーID";
function onMessage(event){
//受信したメッセージ情報を変数に格納する
var reply_token = event.replyToken; //reply token
var messageType = event.message.type; //メッセージタイプ
switch (messageType) {
case "text":
// テキストの場合の処理
break
case "image":
//変数LINE_END_POINTとreply_tokenを関数getImageに渡し、getImageを起動する
getImage(event.message.id , reply_token);
}
}
//Blob形式で画像を取得する
function getImage(messageId , reply_token){
//ファイル名に使う現在日時をMomentライブラリーを使って取得
var formattedDate = Moment.moment().format("YYYYMMDD_HHmmss"); //現在日時を取得
var url = "https://api-data.line.me/v2/bot/message/" + messageId + "/content";
var headers = {
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
};
var options = {
"method" : "get",
"headers" : headers,
};
var res = UrlFetchApp.fetch(url, options);
//Blob形式で画像を取得し、ファイル名を設定する
//ファイル名: LINE画像_YYYYMMDD_HHmmss.png
var imageBlob = res.getBlob().getAs("image/png").setName("LINE画像_" + formattedDate + ".png");
//変数imageBlobとreply_tokenを関数saveImageに渡し、saveImageを起動する
saveImage(imageBlob, reply_token);
}
//画像をGoogle Driveのフォルダーに保存する
function saveImage(imageBlob, reply_token ){
var fileID = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID)
.createFile(imageBlob).getId();
var imageFile = DriveApp.getFileById(fileID);
imageFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var imageUrl = imageFile.getDownloadUrl();
var message = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
//変数reply_tokenとmessageを関数sendMessageに渡し、sendMessageを起動する
sendMessage(reply_token, message)
}
//ユーザーにメッセージを送信する
function sendMessage(reply_token , text){
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(line_endpoint, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
},
'method': 'POST',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{'type': 'text','text': text,}],
}),
});
}
요약
이전에는 이미지를 얻지 못하고 양식으로 도망 갔지만 잘 작동했습니다.
어쩌면 리플레이 토큰 어느 분락이 된 것 같아
구현할 때는 여러 가지 생각이 들었습니다. .
그룹에 넣고 싶기 때문에 첫 번째 이미지처럼 '이미지 공유'메시지가 있으면 다음 전송 된 이미지에 대해이 프로세스를 수행합니다.
링크들
GoogleAppScript-Drive-File-setSharing
Google Charts Infographics QRcode
Reference
이 문제에 관하여(모르는 사람과 이미지를 공유하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sion908/items/2399f137ec421c5ff83a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
-Google App Script(메인)
-Google Charts API(QR 코드)
-line bot (완료된 QR 코드 링크 전송)
Google Charts API(QR 코드)
var outputUrl = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
실제로 만들고 싶지만 지금은 무리이므로 API에 의존합니다.
크기와 보내고 싶은 내용을 URL로 지정하는 것만으로 QR 코드를 나타냅니다.
굉장히
언제 없을지 모르겠다.
↓공식
Google Charts Infographics QRcode
linebot 정보
기본적으로 앵무새 반환의 bot입니다.
자세히 알고 싶다면 "linebot GAS 앵무새 반환"을 통해 조사하면 얼마든지 나옵니다.
userID를 얻고 텍스트를 보내는 것보다 리플레이 토큰을 얻고 거기에 던지는 것이 더 이상 제한과 관련이 없을 것임을 최근에 알았습니다.
json 알면 할 수있는 일이 증가합니다.
전용
실제로 사용할 때는 라인의 액세스 토큰과 폴더의 ID를 자신의 것으로 해 넣어 주세요
모르면 적당히 구그하면 나옵니다.
흐름으로는
전송된 이미지를 GoogleDrive에 저장하고 누구나 볼 수 있도록 한 후 공유 URL을 GoogleChartsAPI에 넣어 회신합니다.
function doPost(e) {
//eがundefinedの場合動作を終了する
if (typeof e === "undefined"){return}
var events = JSON.parse(e.postData.contents).events;
events.forEach(function(event) {
if(event.type == "message") { onMessage(event,follow(event)); }
});
}
//LINE Messaging APIのチャネルアクセストークン
var LINE_ACCESS_TOKEN = "自分のラインアクセストークン";
//画像を保存するフォルダーID
var GOOGLE_DRIVE_FOLDER_ID = "保存先のフォルダーID";
function onMessage(event){
//受信したメッセージ情報を変数に格納する
var reply_token = event.replyToken; //reply token
var messageType = event.message.type; //メッセージタイプ
switch (messageType) {
case "text":
// テキストの場合の処理
break
case "image":
//変数LINE_END_POINTとreply_tokenを関数getImageに渡し、getImageを起動する
getImage(event.message.id , reply_token);
}
}
//Blob形式で画像を取得する
function getImage(messageId , reply_token){
//ファイル名に使う現在日時をMomentライブラリーを使って取得
var formattedDate = Moment.moment().format("YYYYMMDD_HHmmss"); //現在日時を取得
var url = "https://api-data.line.me/v2/bot/message/" + messageId + "/content";
var headers = {
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
};
var options = {
"method" : "get",
"headers" : headers,
};
var res = UrlFetchApp.fetch(url, options);
//Blob形式で画像を取得し、ファイル名を設定する
//ファイル名: LINE画像_YYYYMMDD_HHmmss.png
var imageBlob = res.getBlob().getAs("image/png").setName("LINE画像_" + formattedDate + ".png");
//変数imageBlobとreply_tokenを関数saveImageに渡し、saveImageを起動する
saveImage(imageBlob, reply_token);
}
//画像をGoogle Driveのフォルダーに保存する
function saveImage(imageBlob, reply_token ){
var fileID = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID)
.createFile(imageBlob).getId();
var imageFile = DriveApp.getFileById(fileID);
imageFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var imageUrl = imageFile.getDownloadUrl();
var message = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
//変数reply_tokenとmessageを関数sendMessageに渡し、sendMessageを起動する
sendMessage(reply_token, message)
}
//ユーザーにメッセージを送信する
function sendMessage(reply_token , text){
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(line_endpoint, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
},
'method': 'POST',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{'type': 'text','text': text,}],
}),
});
}
요약
이전에는 이미지를 얻지 못하고 양식으로 도망 갔지만 잘 작동했습니다.
어쩌면 리플레이 토큰 어느 분락이 된 것 같아
구현할 때는 여러 가지 생각이 들었습니다. .
그룹에 넣고 싶기 때문에 첫 번째 이미지처럼 '이미지 공유'메시지가 있으면 다음 전송 된 이미지에 대해이 프로세스를 수행합니다.
링크들
GoogleAppScript-Drive-File-setSharing
Google Charts Infographics QRcode
Reference
이 문제에 관하여(모르는 사람과 이미지를 공유하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sion908/items/2399f137ec421c5ff83a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var outputUrl = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
기본적으로 앵무새 반환의 bot입니다.
자세히 알고 싶다면 "linebot GAS 앵무새 반환"을 통해 조사하면 얼마든지 나옵니다.
userID를 얻고 텍스트를 보내는 것보다 리플레이 토큰을 얻고 거기에 던지는 것이 더 이상 제한과 관련이 없을 것임을 최근에 알았습니다.
json 알면 할 수있는 일이 증가합니다.
전용
실제로 사용할 때는 라인의 액세스 토큰과 폴더의 ID를 자신의 것으로 해 넣어 주세요
모르면 적당히 구그하면 나옵니다.
흐름으로는
전송된 이미지를 GoogleDrive에 저장하고 누구나 볼 수 있도록 한 후 공유 URL을 GoogleChartsAPI에 넣어 회신합니다.
function doPost(e) {
//eがundefinedの場合動作を終了する
if (typeof e === "undefined"){return}
var events = JSON.parse(e.postData.contents).events;
events.forEach(function(event) {
if(event.type == "message") { onMessage(event,follow(event)); }
});
}
//LINE Messaging APIのチャネルアクセストークン
var LINE_ACCESS_TOKEN = "自分のラインアクセストークン";
//画像を保存するフォルダーID
var GOOGLE_DRIVE_FOLDER_ID = "保存先のフォルダーID";
function onMessage(event){
//受信したメッセージ情報を変数に格納する
var reply_token = event.replyToken; //reply token
var messageType = event.message.type; //メッセージタイプ
switch (messageType) {
case "text":
// テキストの場合の処理
break
case "image":
//変数LINE_END_POINTとreply_tokenを関数getImageに渡し、getImageを起動する
getImage(event.message.id , reply_token);
}
}
//Blob形式で画像を取得する
function getImage(messageId , reply_token){
//ファイル名に使う現在日時をMomentライブラリーを使って取得
var formattedDate = Moment.moment().format("YYYYMMDD_HHmmss"); //現在日時を取得
var url = "https://api-data.line.me/v2/bot/message/" + messageId + "/content";
var headers = {
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
};
var options = {
"method" : "get",
"headers" : headers,
};
var res = UrlFetchApp.fetch(url, options);
//Blob形式で画像を取得し、ファイル名を設定する
//ファイル名: LINE画像_YYYYMMDD_HHmmss.png
var imageBlob = res.getBlob().getAs("image/png").setName("LINE画像_" + formattedDate + ".png");
//変数imageBlobとreply_tokenを関数saveImageに渡し、saveImageを起動する
saveImage(imageBlob, reply_token);
}
//画像をGoogle Driveのフォルダーに保存する
function saveImage(imageBlob, reply_token ){
var fileID = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID)
.createFile(imageBlob).getId();
var imageFile = DriveApp.getFileById(fileID);
imageFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var imageUrl = imageFile.getDownloadUrl();
var message = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
//変数reply_tokenとmessageを関数sendMessageに渡し、sendMessageを起動する
sendMessage(reply_token, message)
}
//ユーザーにメッセージを送信する
function sendMessage(reply_token , text){
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(line_endpoint, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
},
'method': 'POST',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{'type': 'text','text': text,}],
}),
});
}
요약
이전에는 이미지를 얻지 못하고 양식으로 도망 갔지만 잘 작동했습니다.
어쩌면 리플레이 토큰 어느 분락이 된 것 같아
구현할 때는 여러 가지 생각이 들었습니다. .
그룹에 넣고 싶기 때문에 첫 번째 이미지처럼 '이미지 공유'메시지가 있으면 다음 전송 된 이미지에 대해이 프로세스를 수행합니다.
링크들
GoogleAppScript-Drive-File-setSharing
Google Charts Infographics QRcode
Reference
이 문제에 관하여(모르는 사람과 이미지를 공유하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sion908/items/2399f137ec421c5ff83a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function doPost(e) {
//eがundefinedの場合動作を終了する
if (typeof e === "undefined"){return}
var events = JSON.parse(e.postData.contents).events;
events.forEach(function(event) {
if(event.type == "message") { onMessage(event,follow(event)); }
});
}
//LINE Messaging APIのチャネルアクセストークン
var LINE_ACCESS_TOKEN = "自分のラインアクセストークン";
//画像を保存するフォルダーID
var GOOGLE_DRIVE_FOLDER_ID = "保存先のフォルダーID";
function onMessage(event){
//受信したメッセージ情報を変数に格納する
var reply_token = event.replyToken; //reply token
var messageType = event.message.type; //メッセージタイプ
switch (messageType) {
case "text":
// テキストの場合の処理
break
case "image":
//変数LINE_END_POINTとreply_tokenを関数getImageに渡し、getImageを起動する
getImage(event.message.id , reply_token);
}
}
//Blob形式で画像を取得する
function getImage(messageId , reply_token){
//ファイル名に使う現在日時をMomentライブラリーを使って取得
var formattedDate = Moment.moment().format("YYYYMMDD_HHmmss"); //現在日時を取得
var url = "https://api-data.line.me/v2/bot/message/" + messageId + "/content";
var headers = {
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
};
var options = {
"method" : "get",
"headers" : headers,
};
var res = UrlFetchApp.fetch(url, options);
//Blob形式で画像を取得し、ファイル名を設定する
//ファイル名: LINE画像_YYYYMMDD_HHmmss.png
var imageBlob = res.getBlob().getAs("image/png").setName("LINE画像_" + formattedDate + ".png");
//変数imageBlobとreply_tokenを関数saveImageに渡し、saveImageを起動する
saveImage(imageBlob, reply_token);
}
//画像をGoogle Driveのフォルダーに保存する
function saveImage(imageBlob, reply_token ){
var fileID = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID)
.createFile(imageBlob).getId();
var imageFile = DriveApp.getFileById(fileID);
imageFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var imageUrl = imageFile.getDownloadUrl();
var message = "https://chart.apis.google.com/chart?cht=qr&chs=130x130&chl=" + imageUrl;
//変数reply_tokenとmessageを関数sendMessageに渡し、sendMessageを起動する
sendMessage(reply_token, message)
}
//ユーザーにメッセージを送信する
function sendMessage(reply_token , text){
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(line_endpoint, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
},
'method': 'POST',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{'type': 'text','text': text,}],
}),
});
}
Reference
이 문제에 관하여(모르는 사람과 이미지를 공유하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sion908/items/2399f137ec421c5ff83a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)