使用cordova应用程序,openFB中的oauthRedirectURL应该是什么样的?

时间:2015-03-22 13:15:02

标签: javascript facebook cordova openfb

我遇到了这个openFB插件,用于在没有sdk的情况下发出facebook请求,可以在cordova中使用,

我得到了登录facebook中的用户,事情就像oauthRedirectURL我最终在一个白页中,显示Success我不知道如何让用户回到应用程序,

if (runningInCordova) {
oauthRedirectURL = "https://www.facebook.com/connect/login_success.html";
}

问题是,

我可以使用哪个网址指向我的应用?

登录后,用户在此屏幕中结束

enter image description here

-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";
}

1 个答案:

答案 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
        }
    });
}

获得访问令牌并存储在数据库中后,您应该重定向到应用程序的任何其他位置。

我希望它有所帮助。

哈维尔。