jedkirby/ tweet-entity-linker
将Twitter API推文实体(如URL、标签和用户提及)转换为相应的HTML实体。
Requires
- php: >=5.6.4
Requires (Dev)
- jedkirby/php-cs: ^1.0
- phpunit/phpunit: ^5.7
- satooshi/php-coveralls: ^1.0
This package is auto-updated.
Last update: 2024-09-25 13:54:16 UTC
README
Tweet Entity Linker是一个非常简单的包,需要最少的设置。它旨在仅将推文的文本及其实体转换为HTML富文本字符串,从而实现链接URL、用户提及和标签。
安装
此包可以通过Composer安装
$ composer require jedkirby/tweet-entity-linker
它需要 PHP >= 5.6.4。
用法
以下指南假设您已将类Jedkirby\TweetEntityLinker\Tweet
导入到您的命名空间中。
Tweet
类需要您传递参数,以便它能够创建链接文本。通常这些参数将是Twitter API端点的响应,如statuses/show/:id,但这不是必需的。
以下伪代码有助于解释使用API响应时需要什么(请参阅示例响应)
$request = Api::get('https://api.twitter.com/1.1/statuses/show/123456'); $tweet = Tweet::make( $request['text'], $request['entities']['urls'], $request['entities']['user_mentions'], $request['entities']['hashtags'], $request['entities']['cashtags'] );
现在Tweet
类已经填充了所需的参数,您可以通过调用linkify()
方法来返回将URL、用户提及和标签转换为HTML实体的文本
$text = $tweet->linkify();
手动创建参数
您可以手动创建参数,但是它们需要一些特定的属性,以便linkify()
方法能够正确地工作,如下所述
参数1:文本
该字段始终是必需的,如果包含URL、用户提及或标签,则相应的参数数组应被填充。以下示例假设我们都有这些
$text = 'This notifies @jedkirby, with the hashtag #Awesome, and the URL https://#/Ed4omjYz.';
参数2:URL
URL参数是一个数组,其中必须包含url
和display_url
字段
$urls = [ [ 'url' => 'https://#/Ed4omjYz', 'display_url' => 'https://jedkirby.com' ] ];
参数3:用户提及
用户提及参数是一个数组,其中必须只包含screen_name
字段
$mentions = [ [ 'screen_name' => 'jedkirby' ] ];
参数4:标签
标签参数是一个数组,其中必须只包含text
字段
$hashtags = [ [ 'text' => 'Awesome' ] ];
参数5:Cashtags
标签参数是一个数组,其中必须只包含text
字段
$cashtags = [ [ 'text' => 'AAPL' ] ];
结果
当将所有上述参数组合在一起时,您将得到以下内容
$tweet = Tweet::make( $text, $urls, $mentions, $hashtags, $cashtags ); var_dump($tweet->linkify());
响应如下
string(262) "This notifies @<a href="https://twitter.com/jedkirby" target="_blank">jedkirby</a>, with the hashtag #<a href="https://twitter.com/hashtag/Awesome" target="_blank">Awesome</a>, and the URL <a href="https://#/Ed4omjYz" target="_blank">https://jedkirby.com</a>."
测试
可以在包内部运行单元测试
$ ./vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING。
许可证
jedkirby/tweet-entity-linker遵循MIT许可证。有关更多详细信息,请参阅LICENSE文件。