Facebook Phonegap 插件 - 能够登录(似乎)但无法获取访问令牌

Posted

技术标签:

【中文标题】Facebook Phonegap 插件 - 能够登录(似乎)但无法获取访问令牌【英文标题】:Facebook Phonegap plugin - Able to log in (it seems) but cannot get access token 【发布时间】:2014-06-18 12:29:36 【问题描述】:

我无法让 phonegap facebook 插件正常工作。做了以下步骤:

我按照https://github.com/phonegap/phonegap-facebook-plugin上的自动安装, 将 facebook-js-jdk 和 cdv-plugin-fb-connect 添加到我的平台/android/assets/www 文件夹 将 config.xml 中的一行替换为 (否则它永远不会起作用)

在启动时,我收到“Cordova Facebook Connect 插件在初始化时失败”。除此之外,当我在 logcat 中运行我的(复制和粘贴的)登录功能时,会返回一个登录对象,其中包含我的所有信息(姓名、正确的用户 ID、电子邮件、教育等......),它说“用户取消登录或未完全授权”。奇怪的是,我的 getLoginStatus 函数似乎工作正常,但没有返回访问令牌。当它运行时,它说我已连接到 Facebook,但在 logcat 中我看到“无法读取未定义的属性 'userID'”。

我尝试了java.lang.RuntimeException: Failure delivering result ResultInfo while logging using Facebook 的建议(不要继续进行活动),但没有奏效。任何帮助将不胜感激,我一直在努力让它工作很长时间......我的功能如下:

function testLogin()
FB.login(function(response) 
if (response.authResponse) 
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) 
    console.log('Good to see you, ' + response.name + '.');
    FB.logout(function(response) 
        console.log('Logged out.');
    );
    );
 else 
    console.log('User cancelled login or did not fully authorize.');

, scope: 'email');


function getLoginStatus() 
                FB.getLoginStatus(function(response) 
                                if (response.status == 'connected') 
                                alert('You are connected to Fb');
                                        var fbid = response.authResponse.userID;
                                        var token = response.authResponse.accessToken;
                                        //console.log(response.authResponse.userID);
                                        //console.log(response.authResponse.accessToken);
                                        alert(response);
                                 else 
                                alert('not connected to FB');
                                
                                );
            

function logout() 
                FB.logout(function(response) 
                        alert('logged out');
);
 

【问题讨论】:

我不久前就想到了这一点,但也许应该发布只是为了提供帮助。我认为这是 ConnectPlugin.java 文件的问题,因为一旦我用旧版本替换它(我认为是从 2014 年 2 月或 2014 年 3 月开始,而不是 4 月),我设法让事情正常进行。 【参考方案1】:

命名空间已更改。而不是使用:

 FB.login(...

你应该使用:

facebookConnectPlugin.login(...

并在别处将 FB 替换为 facebookConnectPlugin。 阅读 https://github.com/phonegap/phonegap-facebook-plugin 上的 read me.md,它可能会帮助您保持一切都是最新的;)

【讨论】:

我阅读了该内容并发布在其中一个问题中,但据我所知,当时我认为没有解决方法。他们说FB方法暂时不会被弃用,所以我就保留了它。 现在只是 Facebook,而不是 facebookConnectPlugin

以上是关于Facebook Phonegap 插件 - 能够登录(似乎)但无法获取访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 插件不适用于 phonegap 构建

Phonegap + Facebook 插件:为 iOs 准备的 Xcodeproj 包

Phonegap 安装 facebook 插件错误 - facebookconnect.xml 已存在

Phonegap 构建 facebook 连接插件 (android)

Phonegap 3.0.0 - Facebook SDK 3.6 - FB 插件:找不到 Facebook 连接

Wizcorp phonegap facebook 插件的问题