我正在使用facebook PHP sdk(v4)来获取用户信息, 安装SDK后,我添加代码
$fb = new Facebook\Facebook([
'app_id' => 'my app id',
'app_secret' => 'my app secret',
'default_graph_version' => 'v2.5',
]);
try {
// Returns a `Facebook\FacebookResponse` object
$access_token= //copied from my https://developers.facebook.com/tools/explorer/
$response = $fb->get('/me?fields=id,name', '$access_token');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$user = $response->getGraphUser();
echo 'Name: ' . $user['name'];
但是当我运行页面时,它会给我这个错误,
Graph returned an error: Invalid appsecret_proof provided in the API argument
我正在正确复制应用程序密码,这可能是导致此类错误的原因以及我该如何解决这个问题?
答案 0 :(得分:3)
您可能需要阅读此内容:https://developers.facebook.com/docs/graph-api/securing-requests
appsecret_proof
是使用App Secret生成的单独参数,但它不是App Secret。有关如何生成它的信息可以在文档中找到。
答案 1 :(得分:2)
这可能会帮助像我这样的人。如果特定应用程序ID的应用程序密钥错误,也会发生此错误
答案 2 :(得分:0)
迟到的回复,但在我的情况下是别的,所以我希望它能帮助别人。我看到你评论说:
//copied from my https://developers.facebook.com/tools/explorer/
在资源管理器工具的右上角,确保所选的Application
与您使用的$fb = new Facebook\Facebook([
'app_id' => 'my app id',
'app_secret' => 'my app secret',
'default_graph_version' => 'vX.Y',
]);
相同:
appsecret_proof
如果您选择了另一个应用程序并使用为其他应用程序提供的访问令牌(基本上是默认的Explorer应用程序),则创建ts.groupby(ts.index.hour).fillna(method='ffill')
的哈希将不正确,您将始终看到此错误。
答案 3 :(得分:0)
您需要在Facebook Graph Explorer中选择您创建的APP。我正在选择我的用户名。当我选择应用程序并点击"获取令牌"它告诉我de"登录面板"从我的应用程序,可以生成令牌。
它对我有用。
答案 4 :(得分:0)
或者问题可能是您尚未启用对 Facebook 应用的 API 调用。启用 Api 调用:
1. Go to your apps section
2. Select the app that you want to use for the intergration
3. Under the App setting select advanced
4. Under security, ensure that the Allow API Access to App Settings is enebale
to yes
5. If need be enable any other permission that might be required.
希望能解决问题