Phonegap 构建 - Facebook 连接插件 - 无效的 android_key 参数错误
Posted
技术标签:
【中文标题】Phonegap 构建 - Facebook 连接插件 - 无效的 android_key 参数错误【英文标题】:Phonegap build - Facebook connect plugin - Invalid android_key parameter error 【发布时间】:2014-03-22 10:12:00 【问题描述】:我正在通过 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 登录 facebook?
以下是我做过的一些事情:
在我的 Facebook 应用设置中:
将“包名称”设置为在我的 phonegap config.xml 中找到的“小部件 ID”。 将“类名”设置为包名并附加“.ProjectActivity”。 启用“单点登录”并禁用“深度链接”。 向公众开放应用程序(通过“状态和审查”部分。在我的 phonegap config.xml 中(在 phonegap 项目的 /www 目录中找到):
输入 APP_ID 作为在我的 facebook 应用仪表板中找到的 ID 在我的 Facebook 应用设置中输入 APP_NAME 作为“命名空间”在我的 phonegap 构建应用设置中:
制作了一个密钥库(使用这个答案:https://***.com/a/19315975/1696114)并用它来生成一个发布 apk。【问题讨论】:
【参考方案1】:我认为您应该使用 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()
登录。尽情享受吧!
【讨论】:
您建议使用的代码似乎与插件 github 页面上的示例非常相似,除了缺少一些内容,这将使其像对 cordova.js 文件的引用和带有 class="data" 的 div。【参考方案2】:我通过使用 phonegap-facebook-plugin 并在本地构建我的 cordova/phonegap 项目成功地制作了一个可以登录 facebook 的应用程序。
我创建了一个新的 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 值替换为我的应用程序 ID)。
然后我将应用程序直接运行到我的安卓设备上:
cordova run android
在这个应用程序中,我可以使用示例提供的界面登录、发布到我自己或朋友的墙等。使用这个新项目(更新了 cordova 版本)我可以使用 phonegap build但我还没试过。
感谢 Dato' Mohammad Nurdin 提出使用此插件的建议。
【讨论】:
其实我用了同样的步骤,但我失败了,你能把eclipse项目分享给我吗以上是关于Phonegap 构建 - Facebook 连接插件 - 无效的 android_key 参数错误的主要内容,如果未能解决你的问题,请参考以下文章
Cordova / Phonegap 应用程序 - 更改 Facebook 帐户
PhoneGap 上 Facebook 登录的哈希键 构建和 PhoneGap 混合应用程序的 OAuth URL Facebook 登录