craftpulse / craft-tweet-feed
以您自己的设计获取Twitter账号的最新推文
Requires
- php: ^8.0.2
- craftcms/cms: ^4.0.0-beta.1
- guzzlehttp/oauth-subscriber: ^0.6.0
Requires (Dev)
- craftcms/phpstan: dev-main
This package is not auto-updated.
Last update: 2024-09-25 11:59:29 UTC
README
以您自己的设计获取Twitter账号的最新推文
要求
此插件需要Craft CMS 3.5.0或更高版本。我们使用Guzzle 6及更高版本(包括7)和Twitter v2.0。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
让Composer加载插件
composer require percipiolondon/craft-tweet-feed
-
在控制面板中,转到设置 → 插件,然后点击Tweet的“安装”按钮。
Tweet Feed概览
此插件提供来自特定Twitter账号的Twitter流。
配置Tweet Feed
要实现这一点,您需要在开发者门户中创建一个应用。请确保它不是一个独立的应用,因为我们使用Twitter API 2.0。
创建您的密钥和令牌,并将它们粘贴到插件设置页面。请确保您创建了OAuth 1.0a并生成了访问令牌。
除了密钥和令牌之外,我们还需要Twitter用户ID来提供来自特定账号的推文。如果您不知道ID,您可以在此网站上查找。
您可以在环境文件中提供所有这些信息。
使用Tweet Feed
为了使用Tweet Feed,我们创建了一个Craft变量来检索。
craft.tweetfeed.tweets()
函数可以有3个参数。
第一个参数:结果数量(默认:100)
第一个参数将询问您想要接收的结果数量。最多可以检索100个结果。以下是一个Twitter API v2速率限制的列表。
示例:3
第二个参数:字段类型(默认:null)
字段类型是您想要从Twitter接收的数据。默认情况下,提供id和text。我们还添加了entities
,因此您已经可以使用推文url。要了解所有选项,您可以去推文对象页面。
请始终使用逗号作为分隔符提供列表。
示例:author_id,context_annotations
第三个参数:额外参数(默认:'')
如果您想扩展查询,可以向URL添加额外参数。max_results
和tweet.fields
已在之前显示的参数中使用。要了解哪些参数存在,您可以去GET /2/users/:id/tweets页面并滚动到'查询参数'。
要为我们的插件提供这些参数,请使用以下示例。您可以使用&
将参数相互关联。
示例:&exclude=retweets,replies&user.fields=id
Twig示例
{% set tweets = craft.tweetfeed.tweets(3,'author_id,context_annotations','&exclude=retweets,replies&user.fields=id') %}
{% for tweet in tweets %}
<div>
<h3>{{ tweet.text }}</h3>
</div>
{% endfor %}
urlify twig扩展过滤器
如果您想解析URL和hashtag为可点击的url,您可以使用| urlify
过滤器。您需要传递整个对象以获取过滤后的推文文本。
{% set tweets = craft.tweetfeed.tweets(3,'author_id,context_annotations','&exclude=retweets,replies&user.fields=id') %}
{% for tweet in tweets %}
<div>
<h3>{{- tweet | urlify | raw -}}</h3>
</div>
{% endfor %}
使用缓存标签以减少调用
每天对API调用的次数有限制。如果您有一个高流量的网站,我们建议使用CraftCMS中的缓存
标签来减少调用。
例如:
{% cache for 1 day %}
{% set tweets = craft.tweetfeed.tweets(3,'author_id,context_annotations','&exclude=retweets,replies&user.fields=id') %}
{% for tweet in tweets %}
<div>
<h3>{{ tweet.text }}</h3>
</div>
{% endfor %}
{% endcache %}
推文源路线图
一些需要进行的更新和潜在功能的想法
- GQL支持