hashandsalt / kirby3-twitter

此软件包已被废弃,不再维护。未建议替代软件包。

Kirby Twitter 插件

安装: 53

依赖项: 0

建议者: 0

安全: 0

星级: 8

关注者: 2

分支: 4

开放问题: 1

类型:kirby-plugin

v1.0.3 2021-12-12 13:08 UTC

This package is auto-updated.

Last update: 2023-12-14 00:52:53 UTC


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