我遇到了这个openFB插件,用于在没有sdk的情况下发出facebook请求,可以在cordova中使用,
我得到了登录facebook中的用户,事情就像oauthRedirectURL我最终在一个白页中,显示Success
我不知道如何让用户回到应用程序,
if (runningInCordova) {
oauthRedirectURL = "https://www.facebook.com/connect/login_success.html";
}
问题是,
我可以使用哪个网址指向我的应用?
登录后,用户在此屏幕中结束
-edit -
我找到了http://localhost.com/oauthcallback.html
之类的解决方案,但我在cordova环境中没有apache2 ..
- 编辑 -
这是我目前的代码,
openFB.init({appId: 'xxxxxxxxyyyyyyyy'});
openFB.login( function(response) {
if(response.status === 'connected') {
alert('Facebook login succeeded, got access token: ' + response.authResponse.token);
} else {
alert('Facebook login failed: ' + response.error);
}
}, {scope: 'email'});
这个填充此值的lib行
if (runningInCordova) {
oauthRedirectURL = "https://www.facebook.com/connect/login_success.html";
}
答案 0 :(得分:1)
我之前没有使用openFB,但我很确定它基于以下文档: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3
如果你转到"记录"您将看到以下消息:
REDIRECT_URI。要重定向登录人员的URL 回到。此URL将捕获“登录”对话框的响应。如果 您在桌面应用程序的Web视图中使用此功能,必须进行此设置 到https://www.facebook.com/connect/login_success.html。
当FB用户授予您的应用权限时,它会被重定向到网址https://www.facebook.com/connect/login_success.html?access_token=new_token& ...
您现在要做的就是监控此网址并获取提供的访问令牌,您应该使用fb用户ID存储以执行任何API调用。
使用openFB搜索如何执行此操作我在openFB github repo中找到了一个应该有用的线程:https://github.com/ccoenraets/OpenFB/issues/20#issuecomment-49249483(不是完全相关但它提供了一些你可以使用的代码)
这应该是允许您监控URL的代码(从线程上提供的代码中提取):
if (runningInCordova) {
loginWindow.addEventListener('loadstart', function (event) {
var url = event.url;
if (url.indexOf("access_token=") > 0) {
// Get the token
}
});
}
获得访问令牌并存储在数据库中后,您应该重定向到应用程序的任何其他位置。
我希望它有所帮助。
哈维尔。