LINE 謹製 Node.js 用 SDK と基本同一のインターフェイスをもつ LINE Messaging API を Google Apps Script で利用するためのライブラリ作りました。
依存ライブラリの設定
- GAS のエディタ画面の [ライブラリ] の [+] をクリックしてダイアログを開きます。
- [スクリプト ID] という入力欄に
1EvYoqrPLkKgsV8FDgSjnHjW1jLp3asOSfDGEtLFO86pPSIm9PbuCQU7b
という値を入力し、 [検索] ボタンをクリックします。 - [追加] ボタンを押します。
呼び出し方
function doPost(e) {
const event = JSON.parse(e.postData.contents).events[0];
const replyToken = event.replyToken;
const lc = new LineBotSDK.Client({ channelAccessToken: 'アクセストークン' });
lc.replyMessage(replyToken, [{ type: 'text', text: 'こんにちは' }]);
}
その他のメソッドの使い方は公式と同じインターフェイスにしてある(Node と GAS での若干クラスの差異がある部分(Readable -> Blob)を除く)ので Messaging APIリファレンス をご参照ください。
リッチメニューの画像を取得する getRichMenuImage
の戻り値について、 GoogleAppsScript.Base.Blob
型で戻していますが、 LINE の API が Content-Type
を application/json
で返してきているため、 GAS 上では json として認識されてしまいます。戻り値に対して getAs('image/jpeg')
とかやってもエラーになってしまうのでご注意ください。
また、使い勝手をよくするメソッドを若干追加しています。そちらについては README をご参照ください。
その他
TypeScript の定義ファイルを用意してあります。 line-bot-sdk-nodejs と同一のインターフェイスにしてあるので、 以下のようなパッケージをインストールすることでローカルでの開発がしやすくなるかと思います。
(逆に同じインターフェイスにするためにクラスを使った結果、 GAS のエディタでは補完が効かなくなっています…)
- typescript
- @line/bot-sdk
- @types/google-apps-script
ソースコード
ソースコードは以下においてあります。
実際にデプロイされているコードはこちらから参照可能です。