前提・実現したいこと
玄関にラズベリーパイとカメラを設置し,
機械学習を用いて,画像から顔を判定し,帰宅または外出したことをLINEに通知する.
発生している問題
GASにPythonkからGetリクエストを送信しようとすると
<Request[500]>
が返ってきます.
該当のソースコード
Python
1url = "https://script.google.com/macros/s/AKfycbx3zWRGcvUi0qs8vtiIbZ8e3ZTh2jghCfzt3cFfrawG1XHAcQ/exec?message=exit" 2result = requests.get(url)
Getリクエストを受け取った時のGAS側のコードは以下の通りです.
function doGet(e) { push(e.parameter.message) }
試したこと
?以降を削除し,元のURLでリクエストを送ろうとしました.
url = "https://script.google.com/macros/s/AKfycbx3zWRGcvUi0qs8vtiIbZ8e3ZTh2jghCfzt3cFfrawG1XHAcQ/exec" result = requests.get(url)
結果は変わらず.
urllib.requestのほうを用いても,500 HTTP errorが返ってきました.
各モジュールを最新版にアップデート,PC自体の再起動なども行いましたが結果は変わりませんでした.
###参考までにGAS側のプログラム
https://www.takeiho.com/line-bot-push
こちらのサイトを参考にさせていただきました.
var channel_access_token = "{正しいアクセストークンを入力しています}" // ボットにメッセージ送信/フォロー/アンフォローした時の処理 function doPost(e) { var events = JSON.parse(e.postData.contents).events; events.forEach(function(event) { if(event.type == "message") { reply(event); } else if(event.type == "follow") { follow(event); } else if(event.type == "unfollow") { unFollow(event); } }); } /* 友達追加されたらユーザーIDを登録する */ function follow(e) { var spreadsheet = SpreadsheetApp.openById('正しいSpreadsheetのIDを入力済み'); //スプレッドシートの指定 var sheet = spreadsheet.getActiveSheet(); //シートを取得する sheet.appendRow([e.source.userId]); //ユーザーIDをシートに追加する } /* アンフォローされたら削除する */ function unFollow(e){ var spreadsheet = SpreadsheetApp.openById('正しいSpreadsheetのIDを入力済み'); var sheet = spreadsheet.getActiveSheet(); var result = findRow(sheet, e.source.userId, 1); if(result > 0){ sheet.deleteRows(result); } } function findRow(sheet,val,col){ var data = sheet.getDataRange().getValues(); for(var i=0; i < data.length; i++){ if(data[i][col-1] === val){ return i+1; } } return 0; } // 入力されたメッセージをおうむ返し function reply(e) { //返信先のデータ及び返信メッセージの指定 var message = { "replyToken" : e.replyToken, "messages" : [ { "type" : "text", "text" : ((e.message.type=="text") ? e.message.text : "Text以外は返せません・・・") } ] }; //情報を詰めて、エンドポイントを蹴飛ばす var replyData = { "method" : "post", "headers" : { "Content-Type" : "application/json", "Authorization" : "Bearer " + channel_access_token }, "payload" : JSON.stringify(message) }; UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", replyData); } //スプレッドシートからユーザーを配列で取得してメッセージを送信 function push(message) { var spreadsheet = SpreadsheetApp.openById('正しいSpreadsheetのIDを入力済み'); //スプレッドシートを取得 var sheet = spreadsheet.getActiveSheet(); //シートを取得 var data = sheet.getDataRange().getValues(); //シートに記載されている値を全て取得 var userlist = []; //型を整えるためにuserlistを作成し値を詰める for(var i=0; i < data.length; i++){ userlist.push(data[i][0]); } var postData = { "to" : userlist, //ここに取得したユーザーIDの配列を指定する "messages" : [ { "type" : "text", "text" : message } ] }; var options_push = { "method" : "post", "headers" : { "Content-Type" : "application/json", "Authorization" : "Bearer " + channel_access_token }, "payload" : JSON.stringify(postData) }; UrlFetchApp.fetch("https://api.line.me/v2/bot/message/multicast", options_push); } //ボットの友達にPush通知する処理 function doGet(e) { push(e.parameter.message) }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。