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

dsp*_*099 5 javascript android facebook ios cordova

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

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

有一个整洁的Cordova插件,它非常彻底地涵盖了Facebook的功能,更重要的是,它看起来像它本身可以管理的那样.

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

  1. 用FB授权
  2. 发布FB上的东西罐头
  3. 确定他们实际上发布了给他们的东西

我相信有一种方法可以使用Facebook的JavaScript SDK来做这些事情,但我从未见过应用程序问我的用户名和密码(这不是真正的Facebook应用程序)而且我不认为Facebook会满意那么,最好的方法是什么呢?

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

My *_*God 1

Android 版 Facebook 登录 -

\n\n

适用于 Android 的 Facebook SDK 提供了为您的应用程序实现 Facebook 登录的方法。SDK 为以下常见场景提供 Facebook 登录支持:

\n\n
    \n
  • 您的应用程序仅使用 Facebook 登录来授权人们使用您的应用程序。
  • \n
  • 您的应用提供两个登录选项:Facebook 登录和您自己的\n登录机制。
  • \n
  • 您的应用最初使用您自己的登录信息,而 Facebook 登录是\n打开某些社交功能的选项。
  • \n
\n\n

了解更多 -使用 facebook 登录

\n\n

手动构建登录流程 -

\n\n

实现 Facebook 登录的最简单、最快捷的方法是使用我们针对 JavaScriptiOSAndroid的官方 SDK ,我们建议您遵循针对这些平台的单独指南。

\n\n

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

\n\n

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

\n\n\n\n

有关更多信息,请检查 - Manual-build-a-login-flow

\n\n

优点:

\n\n
    \n
  • 没有插件依赖性,新版本的 Cordova 或 Facebook SDK 发布时也没有不确定性。\n
  • \n
  • 适用于所有平台,包括不存在插件版本\xe2\x80\x99 的平台。
  • \n
  • 适用于基于浏览器的应用程序和 Cordova 应用程序。
  • \n
\n\n

缺点:

\n\n
    \n
  • 不成熟,开箱即用的功能较少。
  • \n
  • 整合不那么紧密。例如,没有本机对话框等。
  • \n
\n\n

该逻辑集成在一起,并可在 github 上作为OpenFB获取。

\n\n

示例示例 -

\n\n

使用 Facebook 登录:

\n\n
openFB.login(scope, successHandler, errorHandler);\n
Run Code Online (Sandbox Code Playgroud)\n\n

获取用户\xe2\x80\x99s的好友列表:

\n\n
openFB.api({path: \'/me/friends\', success: successHandler, error: errorHandler});\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 user\xe2\x80\x99s feed 上发布:

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