idealizetecnologia / tweetphp
一个用于从Twitter用户时间线中抓取推文并将其渲染为HTML列表的PHP类
Requires
- php: >=5.3.0
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_key
、consumer_secret
、access_token
、access_token_secret
和 twitter_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()
返回的数组自行处理推文,这可能很有用。
鸣谢
- Feed解析使用了Matt Harris的 tmhOAuth
- 标签/用户名解析使用了Mike Cochrane的 twitter-text-php
- 其他贡献者: Matt Pugh、Dario Bauer