この記事に書いてあること
- Botにメッセージを送信した際に「Access is denied for bot.」が発生する原因と解決方法
前提
- LineWorksのAPIは2.0を使用
- アクセストークンなどは適切に設定している
事象
トークンを適切に設定して以下のメッセージを送信すると、
{
"content": {
"type": "text",
"text": "hello"
}
}
以下のメッセージが返ってきました。
{
"code": "ACCESS_DENIED",
"description": "Access is denied for bot."
}
Bot側にアクセスが拒否されているようです。
トークンなどを不正なものにして送信すると認証エラーが返ってくるので、トークンの検証までは成功している様子。
原因
悩みに悩んだ結果たどり着いた一つの答えは、
Botが準備中ステータスだから
でした。
開発者コンソール:https://developers.worksmobile.com/jp/console/bot/view
にアクセスして該当のボットを見ると
というように準備中ステータスです。
解決
どうやら、このステータスをシステム管理者側で「サービス中」に変える必要があるようです。
管理者に依頼してサービス中に変えてもらったところ、問題なくメッセージを送ることができました!
いやー・・・・Access Deniedのメッセージだけだとこういう設定の不備って気づけないから辛いですね・・・・!
(ミスする方が悪い)