LINE BOTを使ってみよう。 (Failed to send messages)
以前、Line Botの記事を書いてからずいぶん経ちますが、
今回、LineBot送信で、思わぬ障害がおきてしまったので記事にしてみました。
Failed to send messagesのエラー対応
今回の障害とは、「Failed to send messages」の戻り値が返ってきました。
送信は、次のAPIを使用しています。
api.line.me/v2/bot/message/push
実行後の「->message」に上記のメッセージが戻ります。
ただ、このエラーが発生する前に、エラーとなる予兆がありました。
Lineでメッセージを送るための前提条件としては、
事前に、送信する相手が “お友達登録" をしていることが必須となりますが、
登録した際にユーザ情報が取得できていませんでした。
ユーザの取得には次のAPIを使用しています。
https://api.line.me/v2/bot/profile/ユーザID
この時点で情報が取得できなかったため、何かあると考えなければいけなかったのですが、
ユーザIDはわかっているため、ユーザ情報なくても送信はできると考えていました。
しかし、送信時に、「Failed to send messages」が発生しました。
「Failed to send messages」の原因
今回の件があるまで、知らなかったのですが、Lineにも「受信拒否」の設定があることがわかりました。
拒否設定は次の画面で行えます。
[ホーム -> 設定画面]
[アプリからの情報アクセス]
この設定をされてしまうと
お友達登録は行えても、ユーザ情報が取得できなく、そのユーザIDに対して送信が行えません。
今頃ですが、Lineに拒否設定があるのに驚きでした。
[前の記事]LINE BOTを使ってみよう。 (CallBackプログラム:画像送信編)
[次の記事]LINE BOTを使ってみよう。(MessagingAPIで利用できる料金プランによる制限)