LINE BOTを使ってみよう。 (Failed to send messages)

2019-08-13

以前、Line Botの記事を書いてからずいぶん経ちますが、
今回、LineBot送信で、思わぬ障害がおきてしまったので記事にしてみました。

Failed to send messagesのエラー対応

今回の障害とは、「Failed to send messages」の戻り値が返ってきました。
送信は、次のAPIを使用しています。

実行後の「->message」に上記のメッセージが戻ります。

ただ、このエラーが発生する前に、エラーとなる予兆がありました。
Lineでメッセージを送るための前提条件としては、
事前に、送信する相手が “お友達登録" をしていることが必須となりますが、
登録した際にユーザ情報が取得できていませんでした。
ユーザの取得には次のAPIを使用しています。

この時点で情報が取得できなかったため、何かあると考えなければいけなかったのですが、
ユーザIDはわかっているため、ユーザ情報なくても送信はできると考えていました。
しかし、送信時に、「Failed to send messages」が発生しました。

「Failed to send messages」の原因

今回の件があるまで、知らなかったのですが、Lineにも「受信拒否」の設定があることがわかりました。
拒否設定は次の画面で行えます。
[ホーム -> 設定画面]

[アプリからの情報アクセス]

この設定をされてしまうと
お友達登録は行えても、ユーザ情報が取得できなく、そのユーザIDに対して送信が行えません。

今頃ですが、Lineに拒否設定があるのに驚きでした。

[前の記事]LINE BOTを使ってみよう。 (CallBackプログラム:画像送信編)
[次の記事]LINE BOTを使ってみよう。(MessagingAPIで利用できる料金プランによる制限)