我知道在Facebook API的最新更新中,有可能提供一个使用app_secret签名的访问令牌的appsecret_proof。
现在的问题是,不管我在我的facebook应用程序上设置了什么选项(启用\禁用:Require AppSecret Proof for Server API calls),我总是得到:
Invalid appsecret_proof provided in the API argument
我发现最新版本的php-facebook-sdk总是在参数appsecret_proof之间插入
...
if (isset($params['access_token'])) {
$params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
}
...
protected function getAppSecretProof($access_token) {
return hash_hmac('sha256', $access_token, $this->getAppSecret());
}
...如果我在我的应用程序上禁用检查,并注释插入参数的行,一切都正常,否则我会得到错误。
现在,我哪里错了?我三次检查了$access_token,$this->getAppSecret()和文档,看起来都是正确的。有什么线索吗?
发布于 2015-08-12 04:58:48
从简单的问题解决方案到复杂的问题解决方案,全神贯注。在这种特定情况下,我首先要做的是仔细(三重)检查我的:应用程序ID,应用程序秘密,应用程序接口-版本(全部3个都在应用程序仪表板中提供)和访问令牌(工具和支持>图形API资源管理器)。
对我来说,缺少的部分是访问令牌。确保在Graph API Explorer下,找到右侧的下拉列表,然后选择您已注册的应用程序名称,而不是默认值"Graph API Explorer“。
所以,毕竟你的代码应该是这样的(Graph v2.4):
$fb = new Facebook\Facebook([
'app_id' => $app_id,
'app_secret' => $app_secret,
'default_graph_version' => $api_version
]);发布于 2013-09-16 00:10:44
通过授予所有权限,我终于能够摆脱这个错误。
https://stackoverflow.com/questions/18517414
复制相似问题