Line Notify でReplyする方法
Line Messaging API で画像を送る場合、現在の仕様的に直リンクされたurlを指定しないとできないみたいだが、 プライベートなものなどを誰でもアクセスできる場所にアップロードするのは気が引ける。
一方、Line Notifyでは画像アップロード機能が実装されたので、自前で何処かにアップロードする必要がなくなった。
Line Notifyは一方的に通知することしかできなさそうだけど、こちらからのメッセージにReplyさせることが出来れば便利そうな気がする。
Line Messaging APIとLine Notifyのアカウントを組み合わせることで、実現することができた。
順序としては
Line Messaging APIのアカウントを作成する。これはこちらからのメッセージを検知するためだけに使用する。
作成したLine Messaging APIのアカウントを含めたグループを作成する。
Line Notify で作成したグループに対するアクセストークンを取得する。
作成したグループにLine Notifyのアカウントを招待する。
3と4の順番を間違えるとエラーになったっぽい。
Google apps scriptでの実装はこちら
// LINE Notify の Access Tokenを設定 var notify_access_token = "xxxxxxxxxxxxxxxxxxxxxxx"; // LINEから呼ばれる関数 function doPost(e) { var events = JSON.parse(e.postData.contents).events; events.forEach(function(event) { if(event.type == "message"){ lineNotify(event); } }); } // LINE Notify での返信 function lineNotify(e) { var postData = { "message" : ((e.message.type=="text")? e.message.text : "Text以外") }; var options = { "method" : "post", "headers" : { "Authorization" : "Bearer " + notify_access_token }, "payload" : postData }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); }
エディタから公開→ウェブ アプリケーションの導入をクリックし、
プロジェクト バージョン:新規作成(更新したいときも「新規作成」を選択)
次のユーザーとしてアプリケーションを実行:自分
アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)
を選択して出てきた現在のウェブ アプリケーションの URLをコピーする。
その後、準備したLine Messaging API アカウントのLine DevelopersのEditを押してWebhook URLに貼り付け、verifyをクリックしSuccessと表示されることを確認する。
これでLine Notifyで返信することができた。