所以我遇到了某人可能会提供帮助的情况。
我使用PhoneGap Build创建移动APP。我正在尝试使用此http://coenraets.org/blog/2014/04/facebook-phonegap-cordova-without-plugin/
正确的知道如果我打开应用程序inBrowser它会工作。询问权限等,并正确获取用户数据。当然我定义了一个有效的oAuth:localhost / ... html。
因此它适用于浏览器,但不适用于移动设备。如果是这样,移动设备的有效网址应该是什么?因为它是一个APP混淆了。我不认为这是必要的显示代码,但如果是这样,请问我。
谢谢;)
答案 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 ...