以前書いたとおり設定だけでは連携できなかったのでコードを書いて連携してみました。
参考にさせていただいたのはこちらのサイトです。ありがとうございます!
環境はサーバなどを用意しなくてもすむGoogle Apps Script(以下GAS)です。
たけしくんから返事がくるREPLY(BOTに話しかけると返事をしてくれる)
たけしはたけしでも世界の北野ではないほうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function doPost(e) { var reply_token = JSON.parse(e.postData.contents).events[0].replyToken; var user_message = JSON.parse(e.postData.contents).events[0].message.text; var res = UrlFetchApp.fetch( userlocal_endpoint + '?key=' + encodeURIComponent(USERLOCAL_KEY) + '&message=' + encodeURIComponent(user_message) ); var replay_text = JSON.parse(res).result; UrlFetchApp.fetch(line_reply_endpoint, { 'headers' : { 'Content-Type' : 'application/json; charset=UTF-8' , 'Authorization' : 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN, }, 'method' : 'post' , 'payload' : JSON.stringify({ 'replyToken' : reply_token, 'messages' : [ { 'type' : 'text' , 'text' : replay_text}, ], }), }); } |
たけしくんから話しかけてくるPUSH(BOTから話しかける)
takeshisheetにたけしくんの猛言をデータ入力してみました。
これをランダムで一覧にしたユーザidに送信します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function doPush() { var takeshiValues = takeshisheet.getDataRange().getValues(); var datarow = Math.floor(Math.random()*takeshiValues.length); var send_message = takeshiValues[datarow][0]; var sheet = SpreadsheetApp.openById( 'ランダム送信するユーザリスト' ).getSheetByName( 'userid' ); var userids = sheet.getDataRange().getValues(); var userrow = Math.floor(Math.random()*userids.length); var userid = userids[userrow][0]; UrlFetchApp.fetch(line_push_endpoint, { 'headers' : { 'Content-Type' : 'application/json; charset=UTF-8' , 'Authorization' : 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN, }, 'method' : 'post' , 'payload' : JSON.stringify({ 'to' : userid, 'messages' : [ { 'type' : 'text' , 'text' : send_message}, ], }), }); } |
あとはdoPushを任意の間隔でトリガーに設定しておけばOKです。