nixondesign/craft-instagram

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

Craft CMS 的 Instagram 基本API集成

安装: 342

依赖: 0

建议: 0

安全性: 0

星标: 0

关注者: 1

分支: 1

开放性问题: 0

类型:craft-plugin

v2.0.0 2022-10-06 11:16 UTC

This package is auto-updated.

Last update: 2023-06-22 09:08:00 UTC


README

此插件提供对Instagram Basic Display API的便捷访问,适用于Craft CMS

功能

  • Twig & JSON:通过动作URL,内容在Twig和JSON中均可以访问。
  • 多站支持:应用按站点进行身份验证,允许每个站点的媒体内容。
  • 简单的令牌管理:令牌可以通过控制面板或CLI轻松刷新。

授权Instagram

在您授权插件之前,您必须首先设置一个Facebook应用,您将使用此应用来授权用户和进行API调用。设置完毕后,您将需要App ID和App Secret。要设置您的应用,请按照官方入门指南中的步骤1到3操作。当被要求输入“有效的OAuth重定向URI”时,请使用插件设置页面中找到的URL。如果您使用的是多站点,您需要为要授权的每个账户创建测试用户。

插件设置

  1. 首先,请确保您已登录您想要验证的Instagram账户,或者完全注销。
  2. 转到插件设置页面,如果运行Craft多站,请切换到适当的站点。
  3. 输入在“应用仪表板”>“产品”>“Instagram”>“基本显示”下找到的App ID和App Secret。这些可以设置为环境变量。
  4. 点击“验证”,您将被带到Instagram以验证插件。验证后,您将被重定向回插件页面。

刷新访问令牌

此插件使用长期访问令牌,有效期60天。可以使用instagram/tokens/refresh CLI命令刷新这些令牌,以将其有效期再延长60天。此命令可以通过cron定期运行。

0 0 1 * * /craft instagram/tokens/refresh

令牌也可以通过控制面板刷新。

显示用户媒体

获取用户可以通过两种方式处理,通过Twig或使用从动作URL返回的JSON。

Twig

可以使用getMedia()方法显示用户的媒体。此方法接受一个可选的选项参数。

{% set feed = craft.instagram.getMedia({
  limit: 20
}) %}

{% if feed %}
  {% for media in feed.media %}
    {{ media.getImg() }}
  {% endfor %}
{% endif %}

媒体对象

属性 描述
id ID。
caption 标题文本。相册中的媒体不返回
username 所有者的用户名
timestamp 发布日期
permalink 永久链接
mediaUrl URL
mediaType 媒体类型。可以是IMAGE、VIDEO或CAROUSEL_ALBUM
thumbnailUrl 缩略图图像URL。仅在视频媒体上可用
getUrl() 根据媒体类型,可以是mediaUrl或thumbnailUrl
getImg() 返回一个图像元素

分页

除了media属性外,getMedia还返回用于分页beforeafter属性。

JSON

媒体源可以通过instagram/media/fetch操作URL以JSON格式提供。选项可以作为查询参数传递。

instagram/media/fetch?limit=1
{
  "media": [
    {
      "id": "",
      "caption": "",
      "username": "",
      "timestamp": "",
      "permalink": "",
      "mediaUrl": "",
      "mediaType": "",
      "thumbnailUrl": ""
    }
  ],
  "before": "",
  "after": ""
}

分页

可以通过使用与media属性一起发送的beforeafter属性来实现分页。

{
  "media": [],
  "before": "",
  "after": ""
}

然后这些可以作为选项与下一个请求一起发送。

Twig

craft.instagram.getMedia({
  after: "xxxxxxxxxxxxxxxxxxx"
})

操作URL

instagram/media/fetch?after=xxxxxxxxxxxxxxxxxxx

选项

Twig变量和JSON端点都接受以下选项

选项 描述 默认值
after 用于获取媒体后的唯一标记 null
before 用于获取媒体前的唯一标记 null
cache 以秒为单位缓存数据的时间,设置为false表示不缓存 300
limit 要获取的媒体项目数,如果为null,则使用Instagram的默认值 null