简化社交/Facebook

此包已被废弃,不再维护。未建议替代包。

Facebook 库

0.10.1 2020-07-15 10:47 UTC

README

     _                 _             
 ___(_)_ __ ___  _ __ | | ___  _ __  
/ __| | '_ ` _ \| '_ \| |/ _ \| '_ \ 
\__ \ | | | | | | |_) | | (_) | | | |
|___/_|_| |_| |_| .__/|_|\___/|_| |_|
                |_|                  
  __                _                 _    
 / _| __ _  ___ ___| |__   ___   ___ | | __
| |_ / _` |/ __/ _ \ '_ \ / _ \ / _ \| |/ /
|  _| (_| | (_|  __/ |_) | (_) | (_) |   < 
|_|  \__,_|\___\___|_.__/ \___/ \___/|_|\_\
                                           

简化社交/Facebook

1. 简介

此库帮助您与 Facebook 的图 API 进行通信。它的目标是帮助您快速开始,通过解决在 Facebook 图 API 中经常出现的常见问题。

2. 要求

您需要注册一个 Facebook 应用 来与 API 进行通信。您可以在 Facebook 开发者门户 注册应用。只需查看 我的应用 并点击 添加新应用

3. 安装

通过 composer 简单安装。仍不了解 composer 是什么?请在此处了解更多信息

{
  "require": {
    "simplon/facebook": "*"
  }
}

4. 用户

以下段落演示了如何对您的 Facebook 应用进行用户认证。它还将展示如何 读取访问令牌,接收一个 长期访问令牌 以及 检索用户数据

4.1. 请求访问令牌

我们需要一个 URL,我们将用户重定向到该 URL 以通过请求的权限来认证我们的应用。您需要为这提供一个回调 URL。Facebook 将在处理完认证过程后将用户重定向到您的 回调 URL。这包括取消操作。

在我们的简单示例中,我们将使用默认权限 public_profile。权限取决于您代表用户想要做什么。 这里是所有可能权限的列表

$appId = 'YOUR-APPID';
$appSecret = 'YOUR-APPSECRET';

// get a facebook app instance
$app = new FacebookApps($appId, $appSecret);

// we need a user instance
$user = new FacebookUsers($app, new FacebookPosts());

// callback url
$urlCallback = 'https://your-domain.com/callback/';

// we will fly with the default permissions: public_profile
$permissions = [];

// now lets build the url
$user->getUrlAuthentication($urlCallback, $permissions); // https://#/dialog/oauth?client_id=...

// redirect user to the given url...

用户在 Facebook 上完成认证后,将重定向到您的 回调 URL。如果用户取消了过程,您将收到以下 GET 请求

YOUR_CALLBACK_URL?
  error_reason=user_denied
  &error=access_denied
  &error_description=The+user+denied+your+request.

否则,您将通过以下 GET 请求 收到认证代码

YOUR_CALLBACK_URL?
  code=AQBggnsv...

为了最终接收一个 访问令牌 以便使用它,我们需要使用提供的 code 和预定义的 回调 URL

$appId = 'YOUR-APPID';
$appSecret = 'YOUR-APPSECRET';

// get a facebook app instance
$app = new FacebookApps($appId, $appSecret);

// we need a user instance
$user = new FacebookUsers($app, new FacebookPosts());

$code = 'AQBggnsv...'; // received code
$urlCallback = 'https://your-domain.com/callback/'; // this needs to be the exact same url as before

// request access token
$user->requestAccessTokenByCode($code, $urlCallback)

// print token
echo $user->getAccessToken(); // CAANc8o7bTTcBAPyTZCwW....

如果您没有收到任何 FacebookException,那么您现在应该拥有一个 用户的访问令牌。您需要保存访问令牌,以便您可以使用它。

此令牌通常有效期为 1 到 2 小时。 继续阅读以了解如何请求 长期访问令牌

4.2. 访问令牌信息

想看看附加到访问令牌上的数据吗?请执行以下操作

$appId = 'YOUR-APPID';
$appSecret = 'YOUR-APPSECRET';

// your saved access token
$userAccessToken = 'CAANc8o7bTTcBAPyTZCwW....';

// get a facebook app instance
$app = new FacebookApps($appId, $appSecret);

// we need an app access token for this
$app->requestAccessToken();

// now we can have a look at the attached data for the user access token
$debugTokenVo = $app->getDebugTokenVo($userAccessToken); // have a look at the class DebugTokenData

// is this a short term token?
$debugTokenVo->isShortTermToken(); // bool

4.3. 请求长期访问令牌

假设我们已经收到一个令牌,并且通过查看其附加的数据,我们确定这是一个 短期令牌。将其转换为 60 天的长期令牌。收到新令牌后,请确保将其保存以供以后使用。

$appId = 'YOUR-APPID';
$appSecret = 'YOUR-APPSECRET';

// your saved access token
$userAccessToken = 'CAANc8o7bTTcBAPyTZCwW....';

// get a facebook app instance
$app = new FacebookApps($appId, $appSecret);

// we need a user instance
$user = new FacebookUsers($app, new FacebookPosts());

// request long term token
$user->setAccessToken($userAccessToken)->requestLongTermAccessToken();

// your new token
$user->getAccessToken(); // save the new token away

如果您已经有一个 长期令牌,这不会造成任何伤害。

4.4. 请求用户数据

好吧,现在我们有了访问令牌,我们可以进行一些请求——这取决于您请求的哪些 权限。在我们的情况下,我们有默认权限 public_profile。以下示例将请求用户数据

$appId = 'YOUR-APPID';
$appSecret = 'YOUR-APPSECRET';

// your saved access token
$userAccessToken = 'CAANc8o7bTTcBAPyTZCwW....';

// get a facebook app instance
$app = new FacebookApps($appId, $appSecret);

// we need a user instance
$user = new FacebookUsers($app, new FacebookPosts());

// fetch user data
$facebookUserDataVo = $user->setAccessToken($userAccessToken)->getUserData(); // the class holds all data

// lets print the name
$facebookUserDataVo->getFullName(); // Foo Bar

5. 页面

即将到来。

6. 订阅

即将到来。

许可证

Simplon/Facebook 在MIT许可证的条款下可以自由分发。

版权所有 (c) 2015 Tino Ehrich (tino@bigpun.me)

在此特此授予任何人免费获得此软件及其相关文档副本(“软件”)的权利,无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他法律依据,无论这些责任是否源于、因之而产生或与之有关软件或其使用或其它处理。