1

在 Facebook 文档中,他们提到 access_token 包括

AA|facebook_app_id|app_secret

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

appsecret_proof 是使用 app secret 作为密钥的访问令牌哈希

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 作为第二个参数。但我仍然得到 API 参数中提供的 Invalid AppSecret_proof

4

2 回答 2

1

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

于 2016-12-28T18:57:05.247 回答
0

您的 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()
于 2017-08-29T10:01:12.983 回答