cohodigital / socialfeed

一个社交动态工具,可以将来自Twitter、Facebook、Instagram和YouTube的帖子拉入统一的JSON动态。

v0.1.9 2016-08-03 18:06 UTC

This package is auto-updated.

Last update: 2024-09-22 05:47:44 UTC


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 对象后,您有两种使用方法

  1. 设置公共JSON ReST端点

    您可以通过调用 $feed->createPublicApi() 方法来创建一个公共JSON ReST API端点。这很简单,但如果您需要进行公共API已提供的操作之外的操作,或者有高度定制的设置,则灵活性较低。

    使用上面的脚本示例,然后添加以下行

    $feed->createPublicApi();
    

    这就完成了!当前的脚本将变成一个提供 SocialFeed 类所有功能的端点。要查看使用详情,请将脚本加载到浏览器中(不添加任何查询参数)。

  2. 使用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命令正确刷新可能需要几分钟。