Phonegap构建-Facebook连接插件-无效的android_键参数错误
我正在通过phonegap构建运行示例代码(如下所示),以生成一个android apk 当我尝试通过android设备上的应用程序登录facebook(安装了facebook应用程序)时,我会出现以下错误: 无效的android_密钥参数J4INwYsuTyQ_LJc1d3WZ2HReg7M与任何允许的android密钥都不匹配。在“应用程序id”处配置应用程序密钥哈希 我已将此密钥复制粘贴到我的应用程序android设置的密钥哈希部分,但当我尝试使用该应用程序登录时,它仍会抛出相同的错误 如何使此应用成功登录到facebook 或者:让android应用程序使用phonegap登录facebook的另一种方式是什么 以下是我做过的一些事情: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设置的密钥哈希部分,但当我尝试使用该应用程序登录时,它仍会抛出相同的错误
- 在我的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
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