Jquery 使用JSSDK和Ajax代码190保存用户配置文件信息

Jquery 使用JSSDK和Ajax代码190保存用户配置文件信息,jquery,facebook-graph-api,facebook-javascript-sdk,facebook-php-sdk,Jquery,Facebook Graph Api,Facebook Javascript Sdk,Facebook Php Sdk,我正在网站上使用Facebook Connect。 我登录用户。我请求发布流、用户关于我以及其他权限 使用JS SDKFB.login函数,我检查response.authResponse对象,然后通过jQuery Ajax将以下数据发布到单独的php文件中进行处理: response.authResponse.accessToken response.authResponse.userID php文件通过$\u POST获取这些参数,并将uid、令牌、名称等保存到数据库中 $uid?访问令

我正在网站上使用Facebook Connect。
我登录用户。我请求发布流、用户关于我以及其他权限

使用JS SDKFB.login函数,我检查response.authResponse对象,然后通过jQuery Ajax将以下数据发布到单独的php文件中进行处理:

  • response.authResponse.accessToken
  • response.authResponse.userID
php文件通过$\u POST获取这些参数,并将uid、令牌、名称等保存到数据库中

$uid?访问令牌=$token

然后在同一个文件中,我尝试将他的用户令牌交换为扩展令牌

$appid&client\u secret=$appsecret&grant\u type=fb\u交换\u令牌&fb\u交换\u令牌=$token

我不知道出了什么问题,但我得到了以下信息

有什么办法解决这个问题吗


谢谢

如果您的$token被验证为有效,则您的$appid或$appsecret变量必须设置不正确

打印出整个字符串,并验证appId和appSecret是否正确


请注意,如果您在交换访问令牌之前“手动”注销facebook,则(短期)令牌将失效,令牌交换将失败。

一个简单的解决方案可能是在PHP文件中使用PHP SDK:


我猜您正在使用AJAX调用php文件,因此可能需要使用PHPSDK的“setAccessToken”函数设置访问令牌。之后,使用“setExtendedAccessToken”,不需要自己做所有这些事情,PHP SDK是官方的。

在扩展访问令牌之前调试它,以了解它是否有效。@ThecWizard我已经调试了它,我得到了它是有效的,但是在Firebug中对process.PHP文件的ajax调用仍然被标记为红色(由于上述错误)代币寿命短,1-2小时后过期,您是否尝试过清除数据库、缓存等,或者使用您知道以前从未使用过的facebook帐户?@Ekim是的,我始终使用单独的帐户来测试应用程序