1. ホーム
  2. facebook

[解決済み] メッセンジャーのボットです。www.facebook.com にログインし、表示される指示に従うまで、アプリにアクセスできません。指示はありませんでした。

2022-03-03 01:52:06

質問内容

2ヶ月間運用していたメッセンジャーボットが、今日の夜、何かが変わったのか、FacebookへのPOSTバックができなくなり、エラーが返ってきています。
おねだりから。

  • これが通信方式
# VS - alias for the Server running chatbot

# this is what should happen
1. User -> message  -> FB   # User sends a message via messenger
2. VS   <- message  <- FB   # Facebook does its thing and send me REST API POST request 
3. VS   -> response -> FB   # I send the response meant for the User
4. User <- response <- FB   # Facebook forwards the response to User 

# this is what is happening
1. User -> message  -> FB  # works
2. VS   <- message  <- FB  # works
3. VS   -> response -> FB  # works
4. VS   <- error    <- FB  # FB returns an 400 error and User gets no response

  • これは、4番目のステップで返されたエラーです。
# The error response from step 4
'{"error":{
    "message":"You cannot access the app till you log in to www.facebook.com and follow the 
               instructions given.",  ### !! above !! ###
    "type":"OAuthException",
    "code":190,
    "error_data": "{\"checkpoint_url\" : \"https:\\\/\\\/www.facebook.com\"}",
    "error_subcode":459,
    "fbtrace_id":"A9MjzGGqQfKY2vPsszXQemu"
    }
}'

メッセージ欄に書いてある通りにしましたが、何も指示がありませんでした。 facebook.com また developers.facebook.com . 正しいアカウントから確認しました。

サーバーのコードを少し変更しましたが、簡単なバグフィックスで、Facebookとの通信には影響がないはずです。明らかに、私はそれをテストし、すべてがうまくいきました。
しかし、一晩中FBはすべてがうまくいっていないと判断し、すべての response が送信されました ( response は通信方式の3段階目)。
このエラーが何なのか、あるいは、Facebookが本当のサポートを提供していないため、どこに助けを求めればいいのか、ご存知ですか?

解決方法は?

クイックフィックス

  • アプリの各管理者アカウントにログインし、通知内容や セキュリティ上の問題がある可能性があります。
    私の場合は、アカウントのパスワードの変更でした。 日常的に使用しないもの
  • で新しいアクセストークンを生成します。 App Dashboard/Messenger/Settings を設定し直し を使用するようにサーバーを設定します。

長いバージョン

このアプリには2つの管理者アカウントがあり、1つは私が普段使っているもの、もう1つはこのプロジェクト専用に作成したものです(不要だったもの)。
メインのアカウントから見ても、何が問題なのか分かるようなものは見つからず、この質問を書くにあたって、念のためもう一つのアカウントも確認してみました。FBは、誰かがアメリカからログインしようとしたので、セキュリティ上の理由からパスワードを変更するように促しました(でも、最近このアカウントにログインしようとしたことはありません)。
パスワードを変更し、何が問題だったのかを教えてくれる通知を探しました。何もありません。エラーの反応もログでは変化なし。

今日、何も良いことがないので、私はから切り替えた。 requests.post("https://graph.facebook.com/v2.6/me/messages")

になります。
requests.post("https://graph.facebook.com/v6.0/me/messages")
とログを確認したところ、このような回答がありました。

"error":{
    "message":"Error validating access token: The session has been invalidated 
               because the user changed their password or Facebook has changed the 
               session for security reasons.",
    "type":"OAuthException",
    "code":190,
    "error_subcode":460,
    "fbtrace_id":"Ay7KPJ9_gtv5s3ebKjm5LG_"
}}'

ここで、書かれているとおりにして、新しい Access Token を App Dashboard/Messenger/Setting で、サーバーを再設定しました。これだけでした。 その後、好奇心から v6.0 から v2.6 で、それでもすべてうまくいきました。