hashandsalt / kirby3-twitter
Kirby Twitter 插件
Requires
- abraham/twitteroauth: ^3.0
- getkirby/composer-installer: ^1.1
README
这是一个小的插件,是对 twitteroauth 的封装。允许您在不使用 Twitter 内嵌时间线的情况下,在您的网站上显示推文。该插件支持 API 的 V1.1 和 V2 版本。插件在 PHP 8 和 Kirby 3.6+ 上进行了测试。
特性
- 使用您自己的标记来在您的网站上显示推文。
- 缓存 API 的结果,每个集合一个独特的文件
- 自动将所有链接、标签和 @ 提及转换为可点击链接。
商业用途
此插件是免费的,但如果您将其用于商业项目,请考虑
如何使用 Kirby Twitter
首先您需要访问 Twitter API,为此您需要一个账户。将您的网站注册为 应用程序。
安装
下载
下载并将此存储库复制到 /site/plugins/kirby3-twitter
。
Composer
composer require hashandsalt/kirby3-twitter
设置
不进行认证您将无法进行操作。在您的配置中设置以下内容以获取对您的源访问权限
'cache.hashandsalt.kirby-twitter.tweets' => true,
'twit.bearer' => 'XXX',
'twit.consumerkey' => 'XXX',
'twit.consumersecret' => 'XXX',
'twit.accesstoken' => 'XXX',
'twit.accesstokensecret' => 'XXX',
'twit.apiVersion' => '1.1',
'twit.cachelife' => 30,
使用方法
要切换 API,请相应地设置配置选项。 'twit.apiVersion' => '1.1'
假设以下详细信息可用于操作
$tweetid = 1469448484185067523;
$myid = 815859093273509888;
$screenName = 'getkirby';
代码片段
有两个有用的代码片段可以帮助您入门。
API V1.1
单个推文
<?= snippet('twitter/tweet', ['cachename' => 'yourcachename', 'media' => true, 'params' => ['id' => $tweetid, 'tweet_mode' => 'extended']])?>
用户时间线
<?= snippet('twitter/tweets', ['cachename' => 'yourcachename', 'media' => true, 'params' => ['screen_name' => $screenName, 'tweet_mode' => 'extended', 'count' => 20, 'exclude_replies' => true]])?>
API V2
单个推文
<?= snippet('twitter/tweet', ['cachename' => 'yourcachename', 'media' => true, 'params' => ['ids' => $tweetid]])?>
用户时间线
<?= snippet('twitter/tweets', ['cachename' => 'yourcachename', 'screenname' => $screenName, 'media' => true, 'params' => ['max_results' => 20]])?>
使用方法
插件提供了三个页面方法。
用于获取单个推文或时间线
$page->tweets(...);
用于获取用户信息
$page->twitterUserName($myid);
$page->twitterUserId($screenName);
API V1.1
单个推文
要获取单个推文,将缓存数据文件的名称作为第一个参数设置,第二个参数是 API 路径,然后是可选的 API 参数。
$result = $page->tweets('mysingletweet', 'statuses/show', ['id' => $tweetid, 'tweet_mode' => 'extended']);
从 ID 获取用户名
从 ID 号返回用户名
$result2 = $page->twitterUserName($myid);
用户ID
根据用户名返回用户ID
$result3 = $page->twitterUserId($screenName);
个人时间线
根据ID返回您自己的时间线。第一个参数设置为缓存数据文件的名称,第二个参数是API路径,后面可以跟可选的API参数。
$result4 = $page->tweets('mytweets', 'statuses/home_timeline', ['count' => 20, 'exclude_replies' => true, 'tweet_mode' => 'extended']);
其他用户时间线
根据ID返回用户的时间线。第一个参数设置为缓存数据文件的名称,第二个参数是API路径,后面可以跟可选的API参数。
$result5 = $page->tweets('someUser', 'statuses/user_timeline', ['screen_name' => $screenName, 'count' => 20, 'exclude_replies' => true, 'tweet_mode' => 'extended']);
API V2
单个推文
要获取单个推文,将缓存数据文件的名称作为第一个参数设置,第二个参数是 API 路径,然后是可选的 API 参数。
$result = $page->tweets('mysingletweet', 'tweets', ['ids' => $tweetid]);
ID转用户名
从 ID 号返回用户名
$result2 = $page->twitterUserName($myid);
用户名转ID
根据用户名返回用户ID
$result3 = $page->twitterUserId($screenName);
获取用户时间线
根据ID返回用户的时间线。第一个参数设置为缓存数据文件的名称,第二个参数是API路径,后面可以跟可选的API参数。
$result4 = $page->tweets($result3, 'users/'.$result3.'/tweets', [
'max_results' => 20
]);
已知问题
Twitter API有点笨。它把转推也计算为一条推文。如果你要求6条推文,但只收到了4条,其中两条很可能是转推。对此无能为力,除了请求超过所需数量,并且只循环前6条,但你可能还会再次遇到这个问题。
许可证
MIT