简化社交/Facebook
Facebook 库
Requires
- php: >=7.1
- dusank/knapsack: ^10.0
- simplon/helper: ^1.0
- simplon/request: ^1.1
- simplon/url: ^0.6
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)
在此特此授予任何人免费获得此软件及其相关文档副本(“软件”)的权利,无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人进行此类操作,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他法律依据,无论这些责任是否源于、因之而产生或与之有关软件或其使用或其它处理。