一个用于从Twitter用户时间线中抓取推文并将其渲染为HTML列表的PHP类

v1.1 2016-11-09 18:29 UTC

This package is auto-updated.

Last update: 2024-09-27 17:03:46 UTC


README

一个用于从Twitter用户时间线中抓取推文并将其渲染为HTML列表的PHP类。

特性

  • 支持Twitter API v1.1
  • 推文被缓存,以避免超过Twitter的API请求速率限制
  • 如果twitter源加载失败,则提供备用方案
  • 可以可选忽略转发和@回复
  • 配置参数允许您指定显示的推文数量
  • 日期可以可选地以“Twitter风格”显示,例如“12分钟前”
  • 您可以为围绕推文、推文状态和元信息的HTML进行自定义

使用方法

要与Twitter的API交互,您需要一个API密钥,您可以在以下位置创建: https://dev.twitter.com/apps

创建您的API密钥后,您需要记下以下值:“消费者密钥”、“消费者密钥”、“访问令牌”、“访问令牌密钥”

这些值可以作为选项传递给类构造函数,同时指定您要查询的Twitter屏幕名称

$TweetPHP = new TweetPHP(array(
  'consumer_key'              => 'xxxxxxxxxxxxxxxxxxxxx',
  'consumer_secret'           => 'xxxxxxxxxxxxxxxxxxxxx',
  'access_token'              => 'xxxxxxxxxxxxxxxxxxxxx',
  'access_token_secret'       => 'xxxxxxxxxxxxxxxxxxxxx',
  'twitter_screen_name'       => 'yourusername'
));

然后您可以这样显示结果

echo $TweetPHP->get_tweet_list();

您还可以检索从Twitter收到的原始数据

$tweet_array = $TweetPHP->get_tweet_array();

选项

可以通过将键值对数组传递给类构造函数来覆盖选项。至少必须设置如上所示的 consumer_keyconsumer_secretaccess_tokenaccess_token_secrettwitter_screen_name 选项。

以下是完整的选项列表及其默认值

'consumer_key'          => '',
'consumer_secret'       => '',
'access_token'          => '',
'access_token_secret'   => '',
'twitter_screen_name'   => '',
'enable_cache'          => true,
'cache_dir'             => dirname(__FILE__) . '/cache/', // Where on the server to save cached tweets
'cachetime'             => 60 * 60, // Seconds to cache feed (1 hour).
'tweets_to_retrieve'    => 25, // Specifies the number of tweets to try and fetch, up to a maximum of 200
'tweets_to_display'     => 10, // Number of tweets to display
'ignore_replies'        => true, // Ignore @replies
'ignore_retweets'       => true, // Ignore retweets
'twitter_style_dates'   => false, // Use twitter style dates e.g. 2 hours ago
'twitter_date_text'     => array('seconds', 'minutes', 'about', 'hour', 'ago'),
'date_format'           => '%I:%M %p %b %e%O', // The defult date format e.g. 12:08 PM Jun 12th. See: https://php.ac.cn/manual/en/function.strftime.php
'date_lang'             => null, // Language for date e.g. 'fr_FR'. See: https://php.ac.cn/manual/en/function.setlocale.php
'twitter_template'      => '<h2>Latest tweets</h2><ul id="twitter">{tweets}</ul>',
'tweet_template'        => '<li><span class="status">{tweet}</span><span class="meta"><a href="{link}">{date}</a></span></li>',
'error_template'        => '<li><span class="status">Our twitter feed is unavailable right now.</span> <span class="meta"><a href="{link}">Follow us on Twitter</a></span></li>',
'debug'                 => false

缓存

由于Twitter限制每小时可以访问其源多少次,因此使用了缓存。

当首次加载用户时间线时,生成的HTML列表将保存为您的Web服务器上的文本文件。此文件的默认位置为:cache/twitter.txt

原始Twitter响应以序列化数组的形式保存在:cache/twitter-array.txt

您可以使用 cache_dir 选项更改这些文件路径。例如,要将路径设置为您的根公共目录,请尝试

$_SERVER['DOCUMENT_ROOT'] . '/path/to/my/cache/dir/'

调试

如果您在使用脚本时遇到问题,请将 debug 选项设置为 true。这将设置PHP的错误报告级别为 E_ALL,并显示调试报告。

即使将 debug 选项设置为 false,您也可以以数组或HTML列表的形式获取调试报告

echo $TweetPHP->get_debug_list();
$debug_array = $TweetPHP->get_debug_array();

辅助方法

autolink

将原始推文文本传递给 autolink(),它将所有用户名、标签和URL转换为HTML链接。

$autolinked_tweet = $TweetPHP->autolink($tweet);

如果您想使用 get_tweet_array() 返回的数组自行处理推文,这可能很有用。

鸣谢