はじめに
多分ほとんどの人がこのタイトルを見て「当たり前じゃん」と思われると予想しますが、公式ドキュメントをちゃんと読まない私は今日初めて複数メッセージの送信機能を知りました。
やり方
特に説明するまでも無いです。LINE bot SDKの公式ドキュメント(ここではnode.js)の一部を抜粋します。
// 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: '第二のメッセージ'}])
さいごに
こんな初歩的なことに衝撃を受けて記事にする自分が恥ずかしい。。。