Q&A

Webhook URLの検証をするAPIが欲しいです

マルチテナントのWEBアプリでMessaging APIを使用しています。

現状Webhook URLの正常性はLINE Developerコンソール上から行えますが、 テナントが増える度にそれぞれのアカウントでLINE Developerコンソールにログインを行い、正常性を確認するのが手間となっています。 (Messagint APIに必要なものはテナント側から出てくるため、実際の運用ではそのテナント用のアカウントと友達登録して正常性を確認している状況)

Webhook URLの検証を行う機能があると、私たちのWEBアプリ上から確認が行えるようになるため有難いです。 APIリファレンスを参照しましたが、該当しそうなものはありませんでした。 可能であれば追加していただけないでしょうか。 ご検討をお願いします。

  • 0
  • 3
  • 3974
  • twitter facebook

ご回答ありがとうございます。 JSONをpost & X-Line-Signatureを追加して対応します。

  • 0

Koki さんのおっしゃるやり方でできると思います。

加えて注意点として、リクエストの際には X-Line-Signature をヘッダーに付与する必要があります。これはリクエストボディが改ざんされていないか検証するための署名です(サーバー側でチェックしていなければ不要ですが…)。 https://developers.line.biz/ja/reference/messaging-api/#webhooks

botのchannel tokenがわかっていれば、HMACで認証コードを生成し、Base64でエンコードすることで生成できると思われます。(参考: Go SDKにおける署名検証部分のコード) https://github.com/line/line-bot-sdk-go/blob/master/linebot/webhook.go#L51-L64

  • 1

コンソール画面からWebhookの検証をすると、以下のJsonがWebhookで送信されるのでご自身でWebhookURLに対してpostすることでWebアプリ上で確認できると思いますがいかがでしょうか?

{"events":[
  {
    "replyToken":"00000000000000000000000000000000",
    "type":"message",
    "timestamp":1570728501562,
    "source":{
      "type":"user",
      "userId":"Udeadbeefdeadbeefdeadbeefdeadbeef"
    },
    "message":{
      "id":"100001",
      "type":"text",
      "text":"Hello, world"
    }
  },
  {
    "replyToken":"ffffffffffffffffffffffffffffffff",
    "type":"message",
    "timestamp":1570728501562,
    "source":{
      "type":"user",
      "userId":"Udeadbeefdeadbeefdeadbeefdeadbeef"
    },
    "message":{
      "id":"100002",
      "type":"sticker",
      "packageId":"1",
      "stickerId":"1"
    }
  }
]}
  • 1
本当によろしいですか? question.vm