Python - API 参数 Account Kit 中提供的 appsecret_proof 无效

Python - Invalid appsecret_proof provided in the API argument Account Kit

在 Facebook 文档中,他们提到 access_token 由

组成

AA|facebook_app_id|app_secret

https://developers.facebook.com/docs/accountkit/graphapi

并且 appsecret_proof 是使用应用程序密钥作为密钥的访问令牌的哈希值

appsecret_proof = hmac.new((app_secret).encode('ascii'), msg=access_token.encode('ascii'), digestmod=hashlib.sha256).hexdigest()

所以我使用上面生成的appsecret_proof来调用端点

https://graph.accountkit.com/v1.1/me/?access_token=

以appsecret_proof作为第二个参数。但我仍然收到 Invalid AppSecret_proof provided in API argument

根据文档,您需要使用用户访问令牌并将其与应用密码进行哈希处理以获取应用 secret_proof 而不是应用访问令牌

您的 app_token 似乎不正确,语法为 <app_id>|<app_secret> -- 例如:

facebook_app_id     = '<YOUR_APP_ID>'
facebook_app_secret = '<YOUR_APP_SECRET>'
facebook_app_token  = '{}|{}'.format(facebook_app_id,facebook_app_secret)

然后您可以按如下方式生成 appsecret_proof:

import hmac,hashlib
app_secret_proof    = hmac.new(facebook_app_secret.encode('utf-8'),
                           msg=facebook_app_token.encode('utf-8'),
                           digestmod=hashlib.sha256).hexdigest()