cohodigital / socialfeed
一个社交动态工具,可以将来自Twitter、Facebook、Instagram和YouTube的帖子拉入统一的JSON动态。
Requires
- php: >=5.4.0
- brombal/underscore: 0.2.*
- facebook/php-sdk-v4: ~5.1
- google/apiclient: ~1.1
- gregwar/cache: ~1.0
- j7mbo/twitter-api-php: ~1.0
README
\Coho\SocialFeed
是一个工具,可以从Twitter、Facebook、Instagram和YouTube拉取帖子到一个统一的JSON动态。
使用方法
首先使用 composer
需求此包
$ composer require cohodigital/social
然后使用 \Coho\SocialFeed
类来构建包含你的社交动态设置的实例。
以下示例展示了如何创建一个 SocialFeed
实例并提供选项
<?php
use \Coho\SocialFeed;
$feed = new SocialFeed([
'instagram' => [
'client_id' => '[client_id]',
'client_secret' => '[client_secret]',
'limit' => 10
],
'youtube' => [
'developer_key' => '[developer_key]',
'username' => [ 'username' ],
'limit' => 10
],
'twitter' => [
'username' => '[username]',
'oauth_access_token' => "[oauth_access_token]",
'oauth_access_token_secret' => "[oauth_access_token_secret]",
'consumer_key' => "[consumer_key]",
'consumer_secret' => "[consumer_secret]",
'limit' => 10
],
'facebook' => [
'username' => '[username]',
'app_id' => '[app_id]',
'app_secret' => '[app_secret]',
'default_access_token' => '[default_access_token]',
'limit' => 10
]
]);
$feed->limit = 40;
$feed->includeOriginals = false;
$feed->cacheTime = 60 * 5;
$feed->instagramExpiredCallback = function(SocialFeed $feed) {
// Alert the user that the Instagram token has expired.
// You'll probably need to send the user an email.
};
创建 SocialFeed
对象后,您有两种使用方法
设置公共JSON ReST端点
您可以通过调用
$feed->createPublicApi()
方法来创建一个公共JSON ReST API端点。这很简单,但如果您需要进行公共API已提供的操作之外的操作,或者有高度定制的设置,则灵活性较低。使用上面的脚本示例,然后添加以下行
$feed->createPublicApi();
这就完成了!当前的脚本将变成一个提供
SocialFeed
类所有功能的端点。要查看使用详情,请将脚本加载到浏览器中(不添加任何查询参数)。使用php API设置
您还可以直接使用面向对象的API,这更灵活,但需要更多设置。
使用上面的脚本示例,然后使用以下详细说明中的任何API方法。
一个简单的示例,仅提供JSON动态结果,将涉及使用上面的脚本示例并添加以下行
header('Content-Type: application/json'); print json_encode($feed->getResults());
SocialFeed
类方法
API提供了以下方法
new \Coho\SocialFeed($settings)
构造函数接受一个参数,即每个动态源设置的数组。参见上面的示例以获取完整选项集。
$socialFeed->getResults($page = 1, $nocache = false)
以PHP数组形式返回社交动态结果。
$page
- 表示要请求的页码。注意,必须在指定的缓存时间限制内顺序请求页面。$nocache
- 强制在请求动态之前清除缓存。
$socialFeed->renewInstagramToken($setInstagramTokenUrl)
调用此方法以开始续订Instagram访问令牌的过程,该令牌用于读取Instagram用户账户的帖子。
注意:此方法将用户重定向到Instagram网站上的一个URL,并停止脚本执行。
$setInstagramTokenUrl
- 用户在通过Instagram成功认证后将被重定向回的URL。该URL将接收一个查询参数code=XXXXX
,该参数由$socialFeed->setInstagramToken()
方法使用。
$socialFeed->setInstagramToken($setInstagramTokenUrl, $redirect)
这是续订Instagram令牌过程的第二步。在传递给
renewInstagramToken()
的URL的脚本中调用此方法。必须存在查询参数code=...
,以便此方法能够正常工作。Instagram会自动将此参数传递到您在调用renewInstagramToken()
时指定的URL。$setInstagramTokenUrl
- 与renewInstagramToken()
传递的相同URL(见上文)。$redirect
- 表示在成功认证后要将用户发送到何处。
$socialFeed->clearCache()
清除缓存,以便下一次对
getResults()
的调用向所有动态源发出新鲜请求。
$socialFeed->createPublicAPI($scriptUrl = null)
创建一个公开端点,使JSON ReST服务能够使用
SocialFeed
的所有功能。
更新和更改
此实用程序使用php的composer包管理器和packagist服务(位于https://packagist.org.cn/)。使用TeamPassword中的登录凭证访问我们的账户。
如果您要进行更改并希望部署,只需使用git为提交标记版本号“vX.X.X”,并将其推送到bitbucket。Packagist将自动检测并发布更新版本。请注意,composer update
命令正确刷新可能需要几分钟。