GASを使ってLINEからChatworkへ投稿

Chatwork
スポンサーリンク

IT関係初心者が、LINEのグループにメッセージが来ると、それをChatworkへ飛ばして見せます!

先日、ChatworkからLINEへメッセージを送信したので、今度は逆にLINEからChatWorkへ投稿してみます。

LINE DevelopersでBotの作成

これは前回のBotを使用します。

新しく作成するときはこちらを参考にして下さい。

LINE Botの作成

GASでプログラム

実際は1つのプログラムですが、それぞれのパートに分けて説明していきます。

LINEにメッセージがあったときの処理

Botがいるグループにメッセージがあると、登録しているWebhookをたたいてくれます。まずは、その部分です。

今回もですが、こちらのサイトを参考にしています。ありがとうございます。

[GAS]全米が泣いた親不孝 LINE Botを作ってみた

 

Chatwork側ではChatworkに作成したアカウントがメッセージを送ります。1対1だったら、いいのですが、グループだと誰から送られてきたか知る必要があります。

幸いLINEから送られてくるJSONの中にはUserIDが入っていますが、これではだれだかわかりません。

そこで、下で表示名を取得します。

UserIDを利用して、LINEの表示名を取得する

これで、LINE Developersでプロフィールの表示名を取得できます。

つまずきポイント

自分のアカウントでテストしていて、表示名も取得しているし、うまくいっていると思ってました。

ところが、他の人がグループに送信したメッセージがChatworkにこないんです。

??テストで送ってみよう!→成功。

他の人が送る→失敗(;・∀・)ハッ?

????悩みました。

そうして、出た解がLINEで友達追加していないと取得できないんじゃない?→正解でした。

友達として登録すると、表示名を取得できました。

そこで、表示名を取得できなかったら「0」を返して、分岐条件としました。

テスト環境が自分ひとりだと、意外な落とし穴がありますね。(意外じゃないかな?)

Chatworkにメッセージ送信

こちらのサイトを参考にさせていただきました。

Google Apps Scriptでチャットワーク上におみくじチャットを作る

ウェブアプリケーションとして導入

上記プログラムをまとめて、ウェブアプリケーションとして導入します。

LINEのBotのWebhookにプログラムのURLを登録

LINEにメッセージがあったら上のプログラムをたたいてほしいので、LINEのBotでWebhookの設定をします。

ウェブアプリケーションとして導入したときのアドレスを記入します。

 

完成です!

うまくいきましたかね?

自分としてはLINEの表示名を取得するのにてこずりました。

 

コメント