我刚升级到PHP 5.4.19和facebook-php-sdk-v4.
难道只是我还是让FB故意难以整合?!例如,我不使用Composer(无法在我的共享主机上安装它),因此加载新类需要一个特定的(自己发现)排序 - 这就足够了!http://metah.ch/blog/2014/05/facebook-sdk-4-0-0-for-php-a-working-sample-to-get-started/上建议的解决方案并不完全正确.
无论如何,当我最终让它运行并在Facebook建议的应用程序高级设置选项卡下启用"App Secret Proof for Server API calls"时,我进入了一个问题22.
就是这个:
1)从我的服务器进行FB API调用,例如$request = new FacebookRequest($session, 'GET', '/me');我现在必须提供appsecret_proof参数.
2)要创建appsecret_proof,我需要一个access_token即$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);.
3)此时要获得只有$ _GET ['code']的access_token,我必须通过进行代码交换
GET https://graph.facebook.com/oauth/access_token?
client_id={app-id}
&redirect_uri={redirect-uri}
&client_secret={app-secret}
&code={code-parameter}.
4)要调用FB进行代码交换,我得到错误{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}.
因此出现两个问题:
1)除了通过代码交换,我还能如何获得access_token,以便我可以使用该令牌创建appsecret_proof并依次调用FacebookRequest?
2)在哪里/如何将appsecret_proof放入FacebookRequest?这可能是这样$request = new FacebookRequest($session, 'GET', '/me', array("appsecret_proof" => $appsecret_proof));吗?我似乎无法找到有关如何使用PHP API appsecret_proof的具体说明(很明显如何通过http与Graph API一起使用).