对我来说,是三个修复使它起作用
- 为开发人员在 Facebook 应用程序的高级配置中激活 Secret 应用程序和 API 访问权限。虽然理论上我不需要它,但它总是提示需要 appsecret_proof,即使这两个选项都关闭了。
在创建 appsecret_proof 时,用于创建它的 access_token 应该与在请求中发送的 access_token 以及它的用户 access_token 相同,我的错误是我正在使用应用程序 access_token。使用用户 access_token。
将参数 appsecret_proof 作为 appsecret_proof 发送,而不是作为 app_secret_proof 发送。一个小细节,但发生在我身上。
额外:对于 python,您可以像这样创建 appsecret_proof:
import hmac
import hashlib
facebook_app_secret = '<your_app_secret>'
facebook_access_token = '<your_user_access_token>'
appsecret_proof = hmac.new(facebook_app_secret.encode('utf-8'),
msg=facebook_access_token.encode('utf-8'),
digestmod=hashlib.sha256).hexdigest()
print(appsecret_proof)
从facebook graph api 调用中获得,在 python 中使用 appsecret_proof