【问题标题】:facebookConnectPlugin is not defined - PhoneGap Build & AndroidfacebookConnectPlugin 未定义 - PhoneGap Build & Android
【发布时间】:2015-10-24 04:27:51
【问题描述】:

我能够使用 PhoneGap 和 Ionic 让 facebookConnectPlugin 在 iOS 上运行。问题是,当我尝试在 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 模拟器上(Lollipop 使用 Visual Studio Emulator for Android)并尝试使用以下代码登录 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 中的小部件元素中的“id”相同。对于类名,我指定了与 id 完全相同的内容,但附加了“.MainActivity”。我将上面第 2 步生成的 Key Hash 插入到 Key Hashes 字段中。我打开了单点登录。不确定这是否正确。

我花了几天时间试图解决这个问题,但没有运气。我不确定问题是否与哈希、cordova 或其他一些 Facebook 权限有关。就像我之前说的,它在 iOS 上运行良好。只是安卓有问题。

任何帮助将不胜感激。

【问题讨论】:

  • 您是使用Phonegap Build(云服务)还是使用CLI?
  • 我正在使用 Phonegap Build(云服务)。

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


【解决方案1】:

@oalbrecht,

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

Top Mistakes by Developers new to Cordova/Phonegap

事实上你的错误是

3.不关注博客。

如您所见,我们现在已移至 npm.org 上的新存储库。这实际上会给你带来另一个错误

11.您现在需要从 NPM 获取插件。

我是怎么想出来的?我用谷歌搜索了你的插件:com.phonegap.plugins.facebookconnect

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

文档说

存储库现已弃用!!!

请去here

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

您的新插件设置是:

&lt;gap:plugin name="cordova-plugin-facebookconnect-orlando" source="npm" version="0.11.0"&gt;

【讨论】:

  • 感谢您的回复!我尝试使用新的插件设置,但现在出现错误:在 /project/Zonar/Plugins/cordova-plugin-facebookconnect-orlando/FacebookConnectPlugin.m:11 中包含的文件中:Zonar/Plugins/cordova-plugin-facebookconnect- orlando/FacebookConnectPlugin.h:11:9: 致命错误:找不到“FacebookSDK/FacebookSDK.h”文件#import ^ 1 个错误生成。这适用于 iOS。我在 PhoneGap Build(云服务)上也遇到了 Android 和 WinPhone 的错误。
  • 如果您的代码在公共网站上,我会看看它。我怀疑有多个问题。
  • 不幸的是,该项目不在公共网站上。您是否使用 PhoneGap Build 让 FacebookConnect 插件在 iOS 和 Android 上工作?我已经在网上广泛地查看了,我还没有看到最近有人让它工作。实际上,根据我所阅读的内容,该插件的最新版本似乎不适用于 PhoneGap Build。如果您以某种方式使其工作,如果您发布有关如何工作的更多信息,我将非常感激。非常感谢您抽出时间来帮助我!
  • 不抱歉。我不喜欢facebook,所以我不支持facebook;我只支持开发者。关于你的问题,我一直忘记让人们知道——iOS 9 不是官方支持。这意味着,您现在为 iOS 9 构建的任何东西都将不起作用。有很多错误。 SEE... FWIW,我正在努力支持我的创业公司,正如我所看到的那样——目前帮助所有 Cordova/Phonegap 开发人员是我的工作。但是,几周后,我将只转向 IOT 和 Phonegap。祝你好运。
猜你喜欢
  • 2015-09-21
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多