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

Chatwork
スポンサーリンク

IT関係ほぼ初心者のHarutoです。

仕事では、Chatworkをよく使用するのですが、プライベートではほとんど使用しないので、休みの日にChatworkに投稿があってもあまり気付かないんですね。

自分宛のメンションがあっても・・・

そこで、Google Apps Script【GAS】を使用して、自分宛のChatworkメッセージをLINEに飛ばしてみたいと思います。

LINEだったらわりと気付くので!

LINE DevelopersでBotの作成

まずは、Chatworkのトークを表示する為に、LINEでBotを作成します。

Botの作成方法はこちらから(未作成すみません)

必要なのは「アクセストークン」

GASでプログラム

ここからは、Google Apps Script【GAS】の作業します。

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

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

で作成したプログラムが↓これ。

if (json.webhook_event.room_id == CW_roomID){

[json.webhook_event.room_id] で、Chatworkから飛んできたJSONから、どのルームで発言された内容か確認して、2行目の [CW_roomID] と同じだった場合だけ、LINEに通知するようにしています。

なんでもいいから、自分宛であればお知らせしてほしい人はこのif文はいらないですが、ボクは特定のルームのメッセージのみ送信してほしかったので、こうしました。

[UrlFetchApp] の後はよくわからんです。勉強しないとね。

とりあえず、’headers’ の ‘Authorization’: ‘Bearer ‘ の後にLINE_CHANNEL_ACCESS_TOKENをついかして、’payload’ の ‘to’ に送りたい宛先のIDを記入して、’messages’ の ’text’ に送りたいメッセージを追加すれば、LINEに遅れます。

ここで、ボクがつまずいた点を紹介

‘messages’ の ’text’ はテキスト形式じゃないと送信できません。

(’type’: ‘text’ だから当たり前なんでしょうけど、そこは初心者なので温かい目で・・・。’type’: ‘text’ だからですよね?違う場合は教えてください。)

どんなJSONが送信されているか確認したくて、最初[‘text’: json] としていて、何回やっても送信されず、頭を悩ませました。

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

作成しただけでは、どうにもなりません。(あたりまえか)

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

「公開」→「ウェブアプリケーションとして導入」をクリック。

「プロジェクトバージョン」説明は適宜。

「次のユーザーとしてアプリケーションを実行」は自分で。

「アプリケーションにアクセスできるユーザー」は「全員(匿名ユーザーを含む)」にします。

すると、承認が必要です。となるので、承認します。

アカウントは自分ですね。

許可します!

そうしたら、導入しましたとなって下の画面になります。

この、「現在のウェブアプリケーションのURL」をChatworkのWebhookに設置するので、メモしてます。

別に、今でなくても、「公開」→「ウェブアプリケーションとして導入」からいつでも確認できます。

はいマタマタつまづきメモ

初心者はダイタイ1回ではうまくいかないですよね?

そういう時、プログラムを編集すると思うんですが、保存するだけではダメです。

「公開」→「ウェブアプリケーションとして導入」から「プロジェクトのバージョン」で「新規作成」を選び、バージョンを上げる必要があります。

これやらないと、プログラムが更新されません。

初心者はわからないですよね~

ChatworkのWebhookAPI設定

ここからはChatworkの設定です。

右上のユーザー名をクリックすると出てくる下のメニューで「API設定を選択します。

左の「API」の下にある「Webhook」をクリックして、新規作成します。

名前はわかりやすい名前で。

「Webhook URL」に先ほど【GAS】で、ウェブアプリケーションとして導入した時のURL(https://script.google.com/ma~~~~)を記入します。

イベントは選べますが、今回は「アカウントイベント」で「ご自身へのメンション」にチェックを入れて、作成とします。

 

はい、うまくいってるとこれで、自分宛にメッセージが来るとLINEで内容がみられるようになります。

 

コメント