39
20

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.

最近知ったMessaging APIの複数メッセージ送信機能

Last updated at Posted at 2019-05-27

はじめに

多分ほとんどの人がこのタイトルを見て「当たり前じゃん」と思われると予想しますが、公式ドキュメントをちゃんと読まない私は今日初めて複数メッセージの送信機能を知りました。

やり方

特に説明するまでも無いです。LINE bot SDKの公式ドキュメント(ここではnode.js)の一部を抜粋します。

line-bot-sdk-nodejs/docs/api-reference/client.md
// Message
pushMessage(to: string, messages: Message | Message[]): Promise<any>
replyMessage(replyToken: string, messages: Message | Message[]): Promise<any>
multicast(to: string[], messages: Message | Message[]): Promise<any>
getMessageContent(messageId: string): Promise<Readable>

上記のメソッドはline-bot-sdk-nodejsのClientクラスに属しているものたちです。ユーザにメッセージを送信する場合はreplyMessage()を使います。replyTokenはユーザから受け取ったWebhookオブジェクトの中に含まれているのでそれを指定します。構造に関してはここを参照してください。
次にmessageを引数として渡します。ここで型がMessage | Message[]と指定されていて、単体の値か配列かどちらでも受け取れるようになっています。ちなみにMessageはテキスト以外にもスタンプや画像なども指定できますが、それぞれ決まった構造のオブジェクトを組み立てる必要があります。ここを参考にしてください。以下はテキストのメッセージの構造の例です。

{
  type: 'text',
  text: 'ここにテキストが入る'
}

要は2回に分けてメッセージを送信したいときは、以下のような感じでreplyMessageを渡せばいいわけです。

replyMessage(event.replyToken, [{type: "text", text: "第一のメッセージ"}, {type: "text", text: '第二のメッセージ'}])

さいごに

こんな初歩的なことに衝撃を受けて記事にする自分が恥ずかしい。。。

39
20
1

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
39
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?