没有插件的移动Facebook授权/操作的最佳实践

时间:2014-06-29 06:09:20

标签: javascript android ios facebook cordova

我正在使用Phonegap编写应用程序。

我想给用户一些额外的好处,如果他们愿意,可以在他们的墙上发布应用程序(或类似的东西)。

有一个整洁的Cordova plugin,它非常彻底地涵盖了Facebook的功能,更重要的是,它本身就像它可以管理的那样。

如果这样的插件不可用,那么拥有用户的高级概述是什么:

  1. 使用FB授权
  2. 在FB上发布一些内容
  3. 确定他们实际上发布了给他们的内容
  4. 我相信有一种方法可以使用Facebook的JavaScript SDK来做这些事情,但我从未见过应用程序问我的用户名和密码(这不是真正的Facebook应用程序)而且我不认为Facebook会对此感到高兴,那么最好的方法是什么呢?

    此外,如果我想让用户在我的应用程序中使用Facebook登录,(想想Tinder)我应该保存哪些数据? Facebook登录令牌和设备ID?在使用Facebook和电话数据识别和存储服务器端的用户帐户信息时,最佳做法是什么?

4 个答案:

答案 0 :(得分:1)

Facebook登录Android -

适用于Android的Facebook SDK提供了为您的应用实施Facebook登录的方法。 SDK为这些常见场景提供Facebook登录支持:

  • 您的应用仅使用Facebook登录来授权使用您应用的用户。
  • 您的应用提供了两种登录选项:Facebook登录和您自己的登录选项 登录机制。
  • 您的应用最初使用自己的登录信息,而Facebook登录则是 打开某些社交功能的选项。

更多信息 - login-with-facebook

手动构建登录流程 -

实施Facebook登录的最简单,最快捷的方法是使用我们的官方SDK for JavaScriptiOSAndroid,我们建议您按照我们针对这些平台的单独指南进行操作。

但是,如果您需要在不使用我们的SDK的情况下为应用程序实现基于浏览器的登录,例如在本机桌面应用程序的Webview中(例如Windows 8),或使用完全服务器端代码的登录流程,您可以使用浏览器重定向为自己构建登录流程。

本指南将指导您完成登录流程的每个步骤,并向您展示如何在不使用我们的SDK的情况下实施每个步骤:

如需更多检查 - manually-build-a-login-flow

<强>优点:

  • 没有插件依赖性,并且在新版本的时候没有不确定性 Cordova或Facebook SDK已发布。
  • 适用于所有平台,包括版本为的平台 该插件不存在。
  • 适用于基于浏览器的应用和Cordova应用。

<强>缺点:

  • 不是完整的,没有开箱即用的功能。
  • 整合不紧张。例如,没有原生对话框等

逻辑集成在一起,可在github上以OpenFB的形式获得。

示例 -

使用Facebook登录:

openFB.login(scope, successHandler, errorHandler);

获取用户的好友列表:

openFB.api({path: '/me/friends', success: successHandler, error: errorHandler});

发布用户的Feed:

openFB.api(
    {
        method: 'POST',
        path: '/me/feed',
        params: {
            message: 'Testing the Facebook Graph API'
        },
        success: successHandler,
        error: errorHandler
    });

答案 1 :(得分:0)

您必须使用Facebook连接插件从cordova应用程序发布内容,或者我用来发布有关我的应用评论的其他方式是使用URL方式。 Facebook有一个提要对话/共享网址系统在Facebook上发布。只需使用本机浏览器调用它并使用正确的参数即可完成工作,facebook负责授权和发布,我不需要处理。

https://www.facebook.com/dialog/share?
  app_id=145634995501895
  &display=popup
  &href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
  &redirect_uri=https://developers.facebook.com/tools/explorer

发现here不知道它是否会在inAppBrowser中工作,我只是调用原生浏览器。

要在应用内发布AFAIK,它必须是插件。

答案 2 :(得分:0)

OpenFB甚至比Apache Cordova插件更好。插件没有得到很好的维护。有时需要数月才能更新到最新版本的Facebook OpenGraph。 OpenFB不断更新。

答案 3 :(得分:0)

您只需使用JavaScript SDK即可。见https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.0

您可以选择使用标准组件或制作自己的按钮。您也可以让用户在最初授予权限后自动进行身份验证,或者始终按下按钮等。尽管FB文档很容易理解。