craftpulse/craft-tweet-feed

以您自己的设计获取Twitter账号的最新推文

安装: 1

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

类型:craft-plugin

4.2.0 2023-02-06 13:25 UTC

README

以您自己的设计获取Twitter账号的最新推文

Screenshot

要求

此插件需要Craft CMS 3.5.0或更高版本。我们使用Guzzle 6及更高版本(包括7)和Twitter v2.0。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 让Composer加载插件

     composer require percipiolondon/craft-tweet-feed
    
  3. 在控制面板中,转到设置 → 插件,然后点击Tweet的“安装”按钮。

Tweet Feed概览

此插件提供来自特定Twitter账号的Twitter流。

配置Tweet Feed

要实现这一点,您需要在开发者门户中创建一个应用。请确保它不是一个独立的应用,因为我们使用Twitter API 2.0。

创建您的密钥和令牌,并将它们粘贴到插件设置页面。请确保您创建了OAuth 1.0a并生成了访问令牌。

除了密钥和令牌之外,我们还需要Twitter用户ID来提供来自特定账号的推文。如果您不知道ID,您可以在此网站上查找。

您可以在环境文件中提供所有这些信息。

Screenshot

使用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_resultstweet.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支持

percipiolondon提供