67
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LINE Messaging APIでgroupIdを取得してPush APIでグループにメッセージを送る

Last updated at Posted at 2016-11-23

概要

 Push APIを使ってユーザ単位でメッセージ送信はできたものの、グループでのやり方がわからず結論難しく考えていたため備忘録。

前提

  • Messaging APIのDeveloper Trialのアカウントを作成している(もしくはプロアカウント)

アカウント設定

Bot設定

 アカウント作成後は、LINE@ MANAGERのBot設定を見るとAPIが無効になっているので有効化します。その後、設定項目が並ぶのでWebhook送信Botのグループトーク参加利用するを選択して保存します。
bot_settings.png

Webhookの設定、トークンの生成

 LINE DevelopersのBasic information画面下部のEDITで編集画面でWebhook URLを設定します。これは、ユーザが友達に追加したりグループに参加した場合のId情報などがJSON形式でPOST送信されてきます。VERIFY押下でサンプルのJSONが確認できます。
 Channel Access TokenはPush APIでメッセージ送信の際に利用します。アカウント作成時は空なのでISSUE押下でトークンを生成します。

push.png

アプリ設定

アプリ側の準備

 LINEアプリ側でプッシュメッセージを受信するグループを作成します。

IMG_0554.PNG

 また、LINE DevelopersのBasic information画面のQR Codeを読み取ってPush API用アカウントを友達追加します。

IMG_0555.PNG

グループにPush API用アカウントを招待

 そして、作成したグループにAPIアカウントを招待してください。このタイミングでグループへの参加がイベントとしてWebhookに設定したURLにJSON情報が送信されます。
IMG_0558.PNG

IMG_0559.PNG
Token・Idは修正済
{
  "events": [
    {
      "type": "join",
      "replyToken": "8f94c14575e04ea3a99d9d79ae3daa3a",
      "source": {
        "groupId": "C23fcbe8d92b0e428298ae1e32585fb36",
        "type": "group"
      },
      "timestamp": 1479886261509
    }
  ]
}

curlでメッセージ送信のテスト

 言語での実装は時間がかかるのでひとまずcurlで実験しましょう。下記のAuthorizationの部分にChannel Access Tokenが入ります。toの部分にはWebhookで取得したJSONのgroupIdを指定します。

Token・Idは修正済
curl -X POST \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer 0Sw81tcX82eGuKkMPYRgbvDUeAIbgPC+wKR8T1aKaWy4+7dpUzR2t9XpVDQw1cKivU1AVBD6tE/DIWSz60QTW9UCyC7lJgE+u74XvEceuoMqmZkZdAxw/DMybh6hffSwUhDg74qcrlRZLPRIcahC/wdB04t89/1O/w1cDnyilFU=' \
-d '{
    "to": "C23fcbe8d92b0e428298ae1e32585fb36",
    "messages":[
        {
            "type":"text",
            "text":"Hello, world1"
        },
        {
            "type":"text",
            "text":"Hello, world2"
        }
    ]
}' https://api.line.me/v2/bot/message/push

結果

IMG_0560.PNG

終わりに

  • IdとかDBでの管理がやっぱり必要?
  • そもそも一斉送信には一つ一つのuserIdでPush APIを叩かないといけない?

参考文献

67
56
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
67
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?