在cordova/angularjs app中进行Facebook身份验证

Mad*_*and 4 facebook angularjs cordova

我正在尝试使用phonegap-facebook插件进行身份验证,并使用提供的示例.但现在我无法弄清楚如何使用角度正确配置它.

我已经尝试了Ciul的angular-facebook模块用于此目的,它可以在浏览器中运行,但我不清楚如何在本机环境中进行设置.

角的Facebook模块带有用于PhoneGap的一个单独的脚本.这里有人关心解释设置应该如何?

gab*_*gab 5

这是我如何处理它.

我在我的index.html中首先包含了cordova.js和cdv-plugin-fb-connect,然后是Ciul插件中的 angular-facebook和angular-facebook-phonegap.js .

index.html:

<script src="cordova.js"></script>
<script src="cdv-plugin-fb-connect.js"></script>
<script src="/bower_components/angular-facebook/lib/angular-facebook.js"></script>
<script src="/bower_components/angular-facebook/lib/angular-facebook-phonegap.js"></script>
Run Code Online (Sandbox Code Playgroud)

我首先在设备就绪事件后手动引导Angular.js.此步骤可能是可选的,因为angular-facebook-phonegap已经等待此事件.

document.addEventListener('deviceready', onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)

在角度配置中注入FacebookProvier后,启动它.

angular.config:

var application_conf_mobile = {
    appId: "XXXXXXX",
    oauth: true,
    localSDK: 'facebook-js-sdk.js', //Load sdk async
    nativeInterface: CDV.FB,
    status: false,
    frictionlessRequests: true,
    useCachedDialogs: false,
    cookies:true
}
FacebookProvider.init(application_conf_mobile,false);
Run Code Online (Sandbox Code Playgroud)

调试时,应该仔细检查CDV变量是否已定义.

您应该能够在服务中使用api(注入"Facebook"):

服务:致电api:

Facebook.getLoginStatus(function(response) {
  handleStatusChange(response)
})
Run Code Online (Sandbox Code Playgroud)

听取来自Facebook的事件(有角度的facebook插件触发它们):

$rootScope.$on('Facebook:authResponseChange', function(e,data){})
$rootScope.$on('Facebook:login', function(e,data){})
...
Run Code Online (Sandbox Code Playgroud)

我希望它能帮到你,我没有忘记任何有用的步骤!

  • @MadsLundeland非常感谢你!这也适用于Android.让我知道如果有人有兴趣,生病了代码github (4认同)