FB.Auth.setAuthResponse仅与OAuth2问题兼容

时间:2011-09-26 06:39:37

标签: facebook oauth-2.0

在选项卡中加载我的Facebook页面会显示以下错误:

 FB.Auth.setAuthResponse only compatible with OAuth2.

我使用像这样的oauth参数:

FB.init({
    appId: fbAppId,
    status: true,
    cookie: true,
    xfbml: false,
    oauth: true
});

我做错了吗?

5 个答案:

答案 0 :(得分:1)

从JDK中删除参数,包括:

script src="http://connect.facebook.net/en_US/all.js"

答案 1 :(得分:0)

  1. 登录负责应用程序的Facebook帐户。
  2. 转到https://developers.facebook.com/apps/并点击相关应用。
  3. 在左侧菜单中的“设置”下,单击“高级”,然后查看“迁移”部分中的设置。
  4. 我在我的测试环境中遇到此问题,并将“加密访问令牌”设置切换为“已启用”,它似乎为我解决了这个问题。我为迁移做了所有这些代码工作,但没有IDEA,我不得不进入应用程序并搞乱设置。

    HTH

答案 2 :(得分:0)

一些Facebook社交插件(需要实际插入JavaScript的插件)有自己的身份验证方案。新实现的“添加到时间轴”按钮是社交插件的一个示例,该插件将导致此错误出现在JS控制台中。尝试删除社交插件,看看错误是否仍然存在。如果它们消失,你唯一真正的选择是切换到XFBML。

答案 3 :(得分:0)

当使用outh 2时,添加oauth = 1为社交插件提供js功能

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/tr_TR/all.js#**oauth=1**&xfbml=1&appId=164442023647373";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

答案 4 :(得分:0)

使用

时出现此错误
ow.fbAsyncInit = function() {
    FB.init({
        appId   : '<s:property value="app_id" />',
        status  : true, // check login status
        cookie  : true, // enable cookies to allow the server to access the session
        xfbml   : true,  // parse XFBML
        oauth   : true
    });

我使用的旧变量:

response.session.access_token
response.session.uid

新变量有所帮助:

response.authResponse.accessToken
response.authResponse.userId