alpanayotov/instagram-helper

基于 WordPress 的库,用于从 Instagram 获取和保存数据

1.1 2016-04-11 19:28 UTC

README

Instagram Helper

基于 WordPress 的库,用于从 Instagram 获取和保存数据。

要求

  • PHP 5 >= 5.3.0
  • WordPress
  • Instagram 客户端密钥和客户端 ID :)
重要!

如果 Instagram 在代码配置正确后没有任何返回,请阅读此内容 -- https://www.instagram.com/developer/review/

功能

  • 通过用户名获取用户动态。
  • 通过标签获取 Instagram 帖子。
  • 将数据保存为自定义文章类型(按需)。

如何使用

instagram-helper.php 文件包含在您的 functions.php 中。此时,您需要使用 Factory 类创建一个 $client$client 负责处理认证过程
$client = Instagram_Helper\Factory::create( 'client', $configuration );

$configuration 数组应如下所示

$configuration = array(  
    'user_name'     => 'instagram_user_name',  
    'client_id'     => 'instagram_client_id',  
    'client_secret' => 'instagram_client_secret',  
`);

$client 对象具有以下方法

  • get_redirect_uri() -- 返回应放置在 Instagram 客户端 有效的重定向 URI 字段中的重定向 URL。
  • generate_authentication_url() -- 返回应访问以启动认证过程的 URL。
  • get_access_token() -- 处理访问令牌的检索。不应直接使用。

认证完成后,您可以从 Instagram 获取帖子。为此,您需要使用 Factory 创建一个 $data_manager 对象。

$data_manager = Instagram_Helper\Factory::create( 'data_manager', $manager_config );

$manager_config 数组是可选的。然而,它可以包含请求的 limit -- $manager_config = array( 'limit' => 5 ) 。这将强制所有查询的默认限制为 5 个条目。

$data_manager 具有以下方法

  • fetch_user_feed( array( 'limit' => 5 ) ) -- 获取配置中使用的 $client 的用户动态的最后 5 个帖子。
  • fetch_hashtag_feed( array( 'limit' => 5, 'hashtag' => 'tag' ) ) -- 获取带有该标签的最后 5 个帖子
  • get_feed_data() -- 返回通过 fetch_user_feedfetch_hashtag_feed 方法获取的数据。
  • clear_feed_data() -- 删除通过 fetch_user_feedfetch_hashtag_feed 方法获取的数据
  • flush_cache() -- 删除数据转瞬即逝(默认情况下,数据存储在转瞬即逝中)。
  • get_transient_lifetime() -- 返回所使用的转瞬即逝的生存期。
  • set_transient_lifetime() -- 设置转瞬即逝的生存期(默认为 300 秒)。

示例

$client_config = array(
    'user_name'     => 'instagram_user_name',  
    'client_id'     => 'instagram_client_id',  
    'client_secret' => 'instagram_client_secret',
);

$client  = Instagram_Helper\Factory::create( 'client', $client_config );
$data_manager  = Instagram_Helper\Factory::create( 'data_manager', array( 'limit' => 5 ) );

$data_manager->fetch_user_feed();
$feed = $data_manager->get_feed_data(); //the data from instagram in now available in $feed

附加功能

帖子存储

有时,您可能需要保存 Instagram 的数据以供以后使用。为此,您可以使用 posts_store 对象及其 save() 方法。

$storer = Instagram_Helper\Factory::create( 'posts_store', array( 'update_count' => 2 ) );
$storer->save( $feed );

update_count 指定应使用 Instagram 的新信息更新多少个已存在的帖子(此功能仍在开发中 :) )

Carbon Fields 集成

如果您正在使用 Carbon Fields 库,可以利用 Carbon_Helper.php 类。它必须与 $client 对象一起使用。

$client  = Instagram_Helper\Factory::create( 'client', array( 'enable_carbon_support' => true ) );
$carbon_helper = Instagram_Helper\Factory::create( 'carbon_helper', $client );
$carbon_helper->create_options_page();

create_options_page() 方法在后台创建一个页面,包含所有需要 $client 的信息字段。$client 将自行获取这些信息,您无需做任何事情。