Facebook Connect/phonegap - FB.init调用中的"nativeInterface"参数,它有什么作用?

And*_*cko 3 android facebook cordova

所以我一直试图为PhoneGap/Android运行Facebook Connect示例而没有运气. https://github.com/davejohnson/phonegap-plugin-facebook-connect*

有一些类似的线程有同样的问题.结论是"Facebook SDK是一个移动点"

我使用phoneGap和Eclipse成功编译了以前的应用程序.现在关注Android的示例*.如果我完全按照他们的建议行事.应用程序显示按钮,但单击它们时没有任何反应.

在分析了我已经注意到的代码之后

function initFB(){
try {
    FB.init({ appId: "45253452345234523", nativeInterface: PG.FB });
    document.getElementById('data').innerHTML = "";
  } catch (e) {
    alert(e);
  }
}
Run Code Online (Sandbox Code Playgroud)

有一个参数nativeInterface:PG.FB在Facebook API中没有为此调用描述.. http://developers.facebook.com/docs/reference/javascript/FB.init/

更有趣的是,当我删除此参数时..突然登录按钮进入带有错误代码API 191的Facebook页面.

所以我的问题是这个参数应该做什么?为什么它不在Facebook API?

我在互联网上找不到关于此参数的信息.我想如果它是一个过时的FB API的情况下会有一些信息可用.

有任何想法吗?

谢谢,

马尔钦

Sam*_*rds 6

"nativeInterface:PG.FB"选项用于告诉PhoneGap使用本机身份验证接口而不是移动Web界面.如果您没有添加"PG.FB"选项,您将被重定向到Facebook的移动身份验证.我花了一段时间来解决这个问题,并没有详细记录,但这就是正在发生的事情.

关于PhoneGap Facebook插件的另外两件事与最新的Facebook JavaScript SDK不同:

  1. 使用FB.login()时,您应该使用"scope"参数,但PhoneGap需要不推荐使用的"perms"参数.
  2. 当来自FB.login()的验证响应时,你应该得到"response.authResponse",而是"response.session"是给出的.这意味着您必须使用"response.session.auth_token"而不是"response.authResponse.accessToken"来提取OAuth访问令牌.

希望他们能够更新PhoneGap Facebook插件,但是现在我使用if/else语句来检测PhoneGap是否存在.您可以使用以下命令检查PhoneGap是否已初始化:

if(window.PhoneGap){
  // PhoneGap Library已加载
}