Phonegap build - Facebook连接插件 - 无效的android_key参数错误

时间:2014-03-22 10:12:00

标签: android facebook cordova phonegap-plugins phonegap-build

我通过phonegap build运行示例代码(如下所示)来生成一个android apk。

https://github.com/phonegap-build/FacebookConnect/blob/master/example/Simple/index.html

当我尝试通过Android设备上的应用程序登录Facebook(安装了Facebook应用程序)时,我收到此错误:

  

无效的android_key参数J4INwYsuTyQ_LJc1d3WZ2HReg7M与任何允许的Android密钥都不匹配。在http://developers.facebook.com/apps/' app id'

配置您的应用密钥哈希值

我已将此密钥复制粘贴到我应用的Android设置的密钥哈希部分,但当我尝试使用该应用程序登录时仍然会抛出相同的错误。

如何让这个应用程序成功登录facebook?

或者:使用phonegap启用Android应用登录Facebook的另一种方法是什么?

以下是我所做的一些事情:

  • 在我的脸书应用程序设置中:

    • 设置'包名称'到小部件ID'在我的phonegap config.xml中找到。
    • 设置'班级名称'使用' .ProjectActivity'到包名称附加到它。
    • 已启用'单点登录'和禁用'深层链接'。
    • 让应用向公众开放(通过'状态和评论'部分。
  • 在我的phonegap config.xml中(位于phonegap项目的/ www目录中):

    • 输入APP_ID作为我的脸谱版应用仪表板中的ID
    • 将APP_NAME作为'命名空间'在我的Facebook应用设置中找到
  • 在我的phonegap构建应用设置中:

2 个答案:

答案 0 :(得分:0)

我认为您应该使用facebook phonegap插件作为身份验证。

下载并安装到您的cordova项目中。

https://github.com/phonegap/phonegap-facebook-plugin

使用此命令进行安装。

cordova plugin add https://github.com/phonegap/phonegap-facebook-plugin.git --variable APP_ID="xxxxxxxxxxxxx" --variable APP_NAME=“xxxxxxxx”

然后在此处设置您的Facebook应用程序:

http://developers.facebook.com/apps/

然后确保您的项目中有此脚本。

cdv-plugin-fb-connect.js
facebook-js-sdk.js

之后,将此代码粘贴到主脚本

if ((typeof cordova == 'undefined') && (typeof Cordova == 'undefined')) alert('Cordova variable does not exist. Check that you have included cordova.js correctly');
if (typeof CDV == 'undefined') alert('CDV variable does not exist. Check that you have included cdv-plugin-fb-connect.js correctly');
if (typeof FB == 'undefined') alert('FB variable does not exist. Check that you have included the Facebook JS SDK file.');
FB.Event.subscribe('auth.login', function(response) {
    //alert('auth.login event');
});
FB.Event.subscribe('auth.logout', function(response) {
    //alert('auth.logout event');
});
FB.Event.subscribe('auth.sessionChange', function(response) {
    //alert('auth.sessionChange event');
});
FB.Event.subscribe('auth.statusChange', function(response) {
    //alert('auth.statusChange event');
});

function getSession() {
    alert("session: " + JSON.stringify(FB.getSession()));
}

function getLoginStatus() {
    FB.getLoginStatus(function(response) {
        if (response.status == 'connected') {
            alert('logged in');
        } else {
            alert('not logged in');
        }
    });
}
var friendIDs = [];
var fdata;

function logout() {
    FB.logout(function(response) {
        alert('logged out');
        window.location.replace("#login");
    });
}

function login() {
    FB.login(

    function(response) {
        if (response.authResponse) {
            alert('logged in');
            FB.api('/me', function(me) {
                if (me.id) {
                                    localStorage.id = me.id;
                    localStorage.email = me.email;
                    localStorage.name = me.name;
                    window.location.replace("#home");
                }
                else {
                    alert('No Internet Connection. Click OK to exit app');
                    navigator.app.exitApp();
                }
            });
        } else {
            alert('not logged in');
        }
    }, {
        scope: "email"
    });
}

document.addEventListener('deviceready', function() {
    try {
        //alert('Device is ready! Make sure you set your app_id below this alert.');
        FB.init({
            appId: "appid",
            nativeInterface: CDV.FB,
            useCachedDialogs: false
        });
        document.getElementById('data').innerHTML = "";
    } catch (e) {
        alert(e);
    }
}, false);

使用login()登录。享受!!

答案 1 :(得分:0)

我成功制作了一个应用程序,可以通过phonegap-facebook-plugin登录到facebook并在本地构建我的cordova / phonegap项目。

我制作了一个新的cordova项目并按照此处的说明为此项目添加了android平台:http://docs.phonegap.com/en/3.4.0/guide_overview_index.md.html#Overview

在这样做的过程中,我发现我之前使用较旧的cordova版本(3.1)无意地制作了我的项目,并且我没有安装cordova命令行界面。我制作第一个项目的方式可能还有其他问题。

然后我在这里添加了phonegap-facebook-plugin:https://github.com/phonegap/phonegap-facebook-plugin使用此命令(来自我的项目位置):

    cordova plugin add https://github.com/phonegap/phonegap-facebook-plugin.git --variable       APP_ID="xxxxxxxxxxxxx" --variable APP_NAME=“xxxxxxxx”

(将APP_ID值替换为我的Facebook应用ID和APP_NAME值,并使用我应用的命名空间。)

然后我将index.html替换为在phonegap-facebook-plugin github页面上找到的示例索引文件+ /blob/master/example/Simple/index.html(将app_id值替换为我的app id)。 / p>

然后我使用以下命令将应用程序直接运行到我的Android设备:

    cordova run android

在这个应用程序中,我可以使用示例提供的界面登录,发布到我自己或朋友的墙壁等。使用这个新项目(更新的cordova版本)我可以使用phonegap构建但我还没有尝试过。

感谢Dato'Mohammad Nurdin建议使用此插件。