我通过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的另一种方法是什么?
以下是我所做的一些事情:
答案 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建议使用此插件。