Phonegap构建-Facebook连接插件-无效的android_键参数错误

Phonegap构建-Facebook连接插件-无效的android_键参数错误,android,facebook,cordova,phonegap-plugins,phonegap-build,Android,Facebook,Cordova,Phonegap Plugins,Phonegap Build,我正在通过phonegap构建运行示例代码(如下所示),以生成一个android apk 当我尝试通过android设备上的应用程序登录facebook(安装了facebook应用程序)时,我会出现以下错误: 无效的android_密钥参数J4INwYsuTyQ_LJc1d3WZ2HReg7M与任何允许的android密钥都不匹配。在“应用程序id”处配置应用程序密钥哈希 我已将此密钥复制粘贴到我的应用程序android设置的密钥哈希部分,但当我尝试使用该应用程序登录时,它仍会抛出相同的错误

我正在通过phonegap构建运行示例代码(如下所示),以生成一个android apk

当我尝试通过android设备上的应用程序登录facebook(安装了facebook应用程序)时,我会出现以下错误:

无效的android_密钥参数J4INwYsuTyQ_LJc1d3WZ2HReg7M与任何允许的android密钥都不匹配。在“应用程序id”处配置应用程序密钥哈希

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

如何使此应用成功登录到facebook

或者:让android应用程序使用phonegap登录facebook的另一种方式是什么

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

  • 在我的facebook应用程序的设置中:
    • 将“Package name”设置为my phonegap config.xml中的“widget id”
    • 将“类名”设置为附加有“.ProjectActivity”的包名
    • 启用“单一登录”并禁用“深度链接”
    • 使应用程序向公众开放(通过“状态和审查”部分)
  • 在my phonegap config.xml(位于phonegap项目的/www目录中)中:
    • 输入APP_ID作为在我的facebook应用程序仪表板中找到的ID
    • 输入APP_NAME作为在我的facebook应用程序设置中找到的“名称空间”
  • 在我的phonegap构建应用程序设置中:
    • 创建密钥库(使用此答案:)并使用它生成发布apk

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

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

使用此命令安装它

cordova plugin add https://github.com/phonegap/phonegap-facebook-plugin.git --variable APP_ID="xxxxxxxxxxxxx" --variable APP_NAME=“xxxxxxxx”
然后在此处设置您的facebook应用程序:

然后确保项目中有此脚本

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()
登录。尽情享受!!

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

我创建了一个新的cordova项目,并为该项目添加了android平台,如下所示:

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

然后,我添加了在此处找到的phonegap facebook插件:使用此命令(从我的项目位置):

(将APP_ID值替换为我的facebook APP ID,将APP_NAME值替换为我的APP的命名空间)

然后,我将index.html替换为phonegap facebook插件github页面+/blob/master/example/Simple/index.html上的示例索引文件(将app_id值替换为我的app id)

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

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


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

您建议使用的代码似乎与该插件的github页面上的示例非常相似,只是缺少一些东西,这些东西会使它像对cordova.js文件的引用和带有class=“data”的div一样工作.事实上,我使用了相同的步骤,但我失败了,你能和我分享一下eclipse项目吗
    cordova run android