facebookConnectPlugin未定义 - PhoneGap Build& Android的

时间:2015-10-24 04:27:51

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

我能够使用PhoneGap和Ionic在facebook上运行facebookConnectPlugin。问题是,当我尝试在Android上运行完全相同的应用程序时,我收到错误“facebookConnectPlugin未定义”。我正在使用PhoneGap Build而且为Android本地构建。

以下是我尝试在Android上使用它的步骤:

1)生成一个新的密钥库。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 

2)使用此密钥库创建了一个新哈希。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

在任何地方使用密码“android”,它要求我输入密码(对于密钥库和哈希)。

3)在config.xml文档中添加了以下内容:

<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0">
    <param name="APP_ID" value="XXXXXXXXXX" />
    <param name="APP_NAME" value="MyApp" />
</gap:plugin>

我从Facebook获得的APP_ID和APP_NAME是来自Facebook的显示名称。

4)在PhoneGap构建中创建一个Android密钥,上传我指定的密钥库和别名“androiddebugkey”。对于所有密码,包括证书密码我输入我的密码“android”。

5)将我的应用程序上传到PhoneGap版本,将其安装在Android模拟器(使用Visual Studio Emulator for Android的Lollipop)上,并尝试使用以下代码登录Facebook。此代码在$ ionicPlatform.ready。

之后触发
var _this = this;    
var fbLoginSuccess = function (userData) {
    facebookConnectPlugin.api("me/?fields=id,email", ["public_profile"],
        function (result) {
        },
        function (error) {
            alert("Failed: " + error);
        }
    );
}

facebookConnectPlugin.login(["public_profile"],
    fbLoginSuccess,
    function (error) {
        alert(JSON.stringify(error));
    }
);

6)对于我在developers.facebook.com的网站,我添加了一个Android应用程序。 Google Play程序包名称与config.xml中widget元素中的“id”相同。对于类名,我指定了与id完全相同的东西,但附加了“.MainActivity”。我将上面步骤2生成的Key Hash插入Key Hashes字段。我打开了单点登录。不确定这是否正确。

我花了好几天试图弄明白这一点没有运气。我不确定问题是否与hash,cordova或其他一些Facebook权限有关。就像我之前说的那样,它在iOS上运行良好。这只是Android有问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

@oalbrecht,

我发布此链接,希望您能阅读整篇文档。

Top Mistakes by Developers new to Cordova/Phonegap

实际上你的错误是

第3。不遵循博客。

您看,我们现在已经转移到npm.org上的新存储库。这实际上会给你带来另一个错误

<强> 11。您需要立即从NPM获取插件。

我是怎么想出来的?我对您的插件进行了谷歌搜索:com.phonegap.plugins.facebookconnect

大约三(3)个链接是您的插件:FacebookConnect

文档说

存储库现已弃用!!!

请转here

仔细阅读方向。这是一个丑陋的插件。正确的链接是:

您的新插件设置为:

<gap:plugin name="cordova-plugin-facebookconnect-orlando" source="npm" version="0.11.0">