-1

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

我让它在 facebook 中登录用户,事情就像 oauthRedirectURL 我最终出现在一个白页中,也就是说Success我不知道​​如何让用户回到应用程序,

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

问题是,

我可以使用什么网址来指向我的应用程序?

登录后用户最终进入此屏幕

在此处输入图像描述

-编辑-

我找到了解决方案,http://localhost.com/oauthcallback.html但我在科尔多瓦环境中没有 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";
}
4

1 回答 1

1

我以前没有使用过openFB,但我很确定它基于以下文档: https ://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3

如果您转到“登录人员”部分,您将看到以下消息:

重定向uri。您要将登录的人重定向回的 URL。此 URL 将捕获来自登录对话框的响应。如果您在桌面应用程序的 web 视图中使用它,则必须将其设置为https://www.facebook.com/connect/login_success.html

当 FB 用户授予您的应用程序权限时,它将被重定向到 url https://www.facebook.com/connect/login_success.html?access_token=new_token& ...

您现在要做的是监控此 url 并获取提供的访问令牌,您应该将其与 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
        }
    });
}

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

我希望它有所帮助。

哈维尔。

于 2015-03-31T21:55:48.130 回答