尝试将openFB与Cordova一起使用

时间:2014-07-11 10:46:44

标签: android facebook facebook-graph-api cordova oauth

所以我遇到了某人可能会提供帮助的情况。

我使用PhoneGap Build创建移动APP。我正在尝试使用此http://coenraets.org/blog/2014/04/facebook-phonegap-cordova-without-plugin/

正确的知道如果我打开应用程序inBrowser它会工作。询问权限等,并正确获取用户数据。当然我定义了一个有效的oAuth:localhost / ... html。

因此它适用于浏览器,但不适用于移动设备。如果是这样,移动设备的有效网址应该是什么?因为它是一个APP混淆了。我不认为这是必要的显示代码,但如果是这样,请问我。

Developers area Permissions working fine

谢谢;)

2 个答案:

答案 0 :(得分:2)

你仍然可以使用openFB,它会起作用。你甚至不需要改变openfb.js文件中的任何内容。您所要做的就是从您想要调用facebook登录窗口的页面中操作调用方法。

比如说你在index.html中有facebook调用方法 然后将此脚本添加到index.html页面,其中调用函数“ facebooklogin()

<script>
openFB.init({ appId: 'your-app-id' });
function facebooklogin() {
    openFB.login(function (response) {
        if (response.status === 'connected') {
            if (response.authResponse) {
                var accessToken = response.authResponse.accessToken;
                openFB.api({
                    path: "/{your app version in facebook developer envi.}/me?",
                    params: { "access_token": accessToken, "?fields":"name,email,gender,user_birthday,locale,bio&access_token='"+accessToken+"'" },
                    success: function (response) {
                        var data = JSON.stringify(response);
                       // do whatever you want with the data for example
                       $(".data_div").html(data); 
                       $(".data_email").html(data.email);

                    },
                    error: function(err){
                    alert(err);
                   }
                });
            }
            else { 
                   alert(“empty response returned”);

            }
        }
        else { 
                alert(“not connected”);
        }
    },
    {
        scope: "public_profile,email,user_birthday"
    });
}
</script>

非常重要!请将您的应用版本 v2.0 v2.5 >替换为 {您在facebook开发环境中的应用版本}

也不要忘记将“您的应用ID ”更改为您的Facebook应用ID示例 432046826485152

使用openfb,您无需为了在其他平台上配置facebook登录而学习锄头。这将服务于所有平台

答案 1 :(得分:1)

我已经通过电话工作了。

奇怪的是,真正的URL不是必需的,只是一个语义上有效的URL。我在Facebook应用页面上添加了一个Facebook Canvas平台,并填写了平台表格:

URL = http://localhost/www/
Secure Canvas URL = https://localhost/www/

以上两个领域都不存在。我还没有填写有效的OAuth重定向URI&#34;高级选项卡中的字段。

之后,我在我的应用中编写了以下代码:

openFB.init("xyz!@#123456789"
  , "http://localhost/www/oauthcallback.html");

重要的是,Facebook Canvas的域名或子域名与openFB.init redirectURL param上的域名或子域名相匹配......

我使用的是openFB 0.1版本。我要测试早期版本。

更新

它之所以有用,是因为我使用的是phonegap serve,这使得openFB明白我的应用程序是一个网站,因为phonegap开发者应用程序是一个浏览器包装器,而不是app包装器。如果我尝试在已编译的应用程序(phonegap local build)中运行它,我的代码就无法运行。我想我必须提前使用facebook-connect ...