1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoogleChatで送信したメッセージを自動でLINEに転送したい

Last updated at Posted at 2024-09-21

概要

タイトル通り
Google Chat アプリを作成して、GASからLINE Messaging APIをリクエストするようにして、
自動転送ができたので手順を備忘として残しておく
(画像の転送には対応していない)

流れ

1.メッセージ送信用のLINE公式アカウントを新規作成
2.Messaging APIの利用を有効にする
3.送信を試してみる
4.Google Chat アプリを作成する
5.GASでMessaging APIを呼び出す
6.検証

手順

1.メッセージ送信用のLINE公式アカウントを新規作成

ここから作れる

途中この画面のアカウント名でLINEが送信されることになる、業種とかはなんでもOK(個人(その他)にした)
mojikyo45_640-2.gif

こんな感じの画面に行けたらOK、作った公式アカウントは自動で友だち追加されてるはず
mojikyo45_640-2.gif

左のサイドバーのプロバイダーを押下、適当な名前でプロバイダーを作成しておく
作成済のアカウントしか用意してなかったので、キャプチャは載せられず

2.Messaging APIの利用を有効にする

LINE Official Account Managerで設定
きっと作った公式アカウントがいるはずなので、アカウント名を押下
mojikyo45_640-2.gif

右上の設定を押下
mojikyo45_640-2.gif

左のサイドバーのMessaging APIを押下
mojikyo45_640-2.gif

Messaging APIを利用するを押下
mojikyo45_640-2.gif

作成済のプロバイダーが表示されるはずなので、押下
任意項目は空欄でOK

LINE Developersに戻るとMessaging APIがいるはずなので、押下
mojikyo45_640-2.gif

Messaging APIタブの一番下にあるチャネルアクセストークンを発行しておく

この後使うので、

・チャネルアクセストークン
・チャネル基本設定タブのあなたのユーザーID

をメモっておく

3.送信を試してみる

この時点でMessaging APIを使ってメッセージ送信ができるはず

VSCodeの拡張機能REST Clientを使って試してみた

mojikyo45_640-2.gif

動いてる!(二回叩いちゃった)
mojikyo45_640-2.gif

restファイルの中身
@baseUrl = https://api.line.me/v2/bot/message/push

POST {{baseUrl}}
Content-Type: application/json
Authorization: Bearer {さっきメモしたチャネルアクセストークン}

{
	"to": "さっきメモしたあなたのユーザーID",
	"messages": [
        {
            "type":"text",
            "text":"Hello, world1"
        },
        {
            "type":"text",
            "text":"Hello, world2"
        }
    ]
}

あとはGoogleChatでメッセージを送信したときに、メッセージを取得してMessaging APIに渡せればクリア

4.Google Chat アプリを作成する

Messaging APIの呼び出しはGASで行うので、Google Chat アプリを作成してスクリプトの実行をしてもらう

公式のドキュメント通りに進めていく(手抜き)

途中で課金を有効にしないといけないけど、毎月200ドル分までは無料で利用できるのできっと大丈夫

そうして出来上がったGoogle Chat アプリがこちら
mojikyo45_640-2.gif

mojikyo45_640-2.gif

DMを始めると挨拶してくれて、メッセージをオウム返ししてくれるロボ

5.GASでMessaging APIを呼び出す

AppsScriptでQuickstart appを押下

function onMessage(event){}を以下の通り書き換える

function onMessage(event) {

  const LINEMessagingAPIUrl = "https://api.line.me/v2/bot/message/push";
  const method = "POST";
  const headers = {
                    "Content-Type": "application/json",
                    "Authorization": "Bearer {少し前にメモしたチャネルアクセストークン}"
                  };
  const talkRoomID = "少し前にメモしたあなたのユーザーID";
  const message = event.message.text;
  const payload = JSON.stringify({
                    "to": talkRoomID,
                    "messages": [
                                  {
                                    "type":"text",
                                    "text":message
                                  }
                                ]
                  });

  const response = UrlFetchApp.fetch(LINEMessagingAPIUrl, {
    method: method,
    headers : headers,
    payload: payload,
  })

  return { "text": response.getContentText() };
}

6.検証

ロボに送ったメッセージがMessaging APIに渡されて、LINEが送信されるはず

mojikyo45_640-2.gif

送信された!
mojikyo45_640-2.gif

補足

talkRoomID(GASでMessaging APIにtoとして渡す値)を変えれば、LINEで転送するときの送信先を変えられる

出典

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?