Facebook Graph API: issue with appsecret_proof and PHP SDK v.3.2.3
我有一个奇怪的问题,从昨天(2015 年 7 月 20 日)开始出现。自 2014 年 8 月以来,我的脚本运行良好,将近一年,但现在它拒绝运行。如果我将图片或文本发布到 Facebook,我会收到以下服务器错误消息:
PHP Fatal error: Uncaught GraphMethodException: Invalid
appsecret_proof provided in the API argument\
thrown in
.../base_facebook.php on line 1329
这是 Facebook PHP SDK (v.3.2.3) 中函数 throwAPIException 中的一行。我知道,它与 Require App Secret 选项有关(在 Facebook Devs -> Apps -> Settings -> Advanced 中)。此选项已停用一年,所以也许我必须在我的脚本中添加一些新内容?
在这个 stackoverflow-post 中,我发现了在调用时添加这一行的提示:
1 | FacebookSession::enableAppSecretProof(false); |
...但这与较新的 SDK v.4 相关,与 v.3 无关。在我的脚本中,我使用以下命令调用 SDK v.3:
1 2 | $facebook = new Facebook(array( 'appId' => $App_ID, 'secret' => $App_Secret, 'cookie' => true )); $facebook->setAccessToken($Access_Token); |
有没有办法在任何地方添加 enableAppSecretProof?谢谢你帮助我! :-)
解决方案:在base_facebook.php的第918行你必须注释这三行
1 2 3 | # if (isset($params['access_token']) && !isset($params['appsecret_proof'])) { # $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']); # } |
就是这样。