Ionic 2 + Facebook(找不到'facebookConnectPlugin')

时间:2016-02-29 22:45:25

标签: facebook cordova-plugins ionic2

我正在使用Ionic 2创建一个应用程序来调用Facebook API。我按照documentation中的步骤安装了cordova插件cordova-plugin-facebook4

现在我正在尝试对用户进行身份验证,但没有成功。我的登录页面:

import {Page} from 'ionic-framework/ionic';


@Page({
  templateUrl: 'build/pages/page1/page1.html',
})
export class Page1 {
  login() {
    facebookConnectPlugin.login(
      ['email'],
      response => {
        console.log(response);
      },
      error => {
        console.log(error);
      }
    );
  }
}

当我用:

运行应用程序时
ionic serve

我在终端中收到以下错误:

enter image description here

当我点击登录按钮时,我在控制台中收到以下错误:

enter image description here

当我尝试构建应用程序以在真实设备上运行时,我在控制台中收到以下错误:

enter image description here

我想我必须导入插件才能使用,但是如何?

3 个答案:

答案 0 :(得分:3)

试试这个。

安装ionic-native npm install ionic-native --save 在此之后,您需要导入facebook import {Facebook} from 'ionic-native'

你现在可以用这种方式使用你的facebook插件

  fblogin(){
    this.platform.ready().then(() => {
      Facebook.login(["email"]).then((result) => {
        console.log(result)
       })
    })
  }

确保将每个权限放入数组

中的单独字符串中

答案 1 :(得分:2)

facebookConnectPlugin Cordova插件在浏览器上不起作用,但如果您尝试在模拟器上运行它,它可以正常工作。根据jeduan's repo的instructions,您可以将其用于网络应用,但我还没有尝试过,因为它对我来说不是必需品。

您可以忽略Cannot find name facebookConnectPlugin错误,因为它只是TypeScript抱怨。在Transpiling to JS之后,它应该可以正常工作。

不确定为什么会出现构建错误。文档有一个主要的遗漏,可能是原因(参考this issue)。您需要传递您的Facebook应用程序ID和应用程序名称(您可以从developer.facebook.com

获取

ionic plugin add cordova-plugin-facebook4 --variable APP_ID="123456789" --variable APP_NAME="myApplication"

对于Android,您还需要生成密钥哈希并将其提供给Facebook。如果您使用的是OSX,则可以生成如下键盘:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

答案 2 :(得分:1)

我已经完成了这项工作并且正常运作。您需要在Facebook开发人员门户网站注册您的应用程序,然后添加cordova插件,然后编写代码。这是一个漫长的过程。

此处提供的详细说明 - http://tphangout.com/?p=204

希望这对你有所帮助,谢谢。