newism/craft3-instagram

Instagram插件,用于连接用户/站点与Instagram基本API

安装: 38

依赖关系: 0

建议者: 0

安全: 0

星级: 3

关注者: 2

分支: 0

类型:craft-plugin

dev-master 2020-05-01 08:12 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:29 UTC


README

Instagram插件,通过访问令牌和基本显示API将元素连接到Instagram基本API。

要求

此插件需要Craft CMS 3.4.0或更高版本。

安装

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

  1. 打开您的终端并转到您的Craft项目: cd /path/to/project
  2. 然后让Composer加载插件: composer require newism/craft3-instagram
  3. 在控制面板中,转到设置→插件,然后点击Instagram的“安装”按钮。

Instagram插件概述

此插件创建了一个新的字段类型,可以生成Instagram API访问令牌,允许您查询Instagram用户的媒体。

与其他Instagram插件不同,因为它

为什么是字段类型?

字段类型可以分配给任何元素,包括条目、全局、用户。这为您提供了多个用例,例如

  • 条目:允许商业列表条目连接自己的Instagram帐户
  • 全局:创建全局字段并连接您的网站Instagram帐户
  • 用户:允许用户连接自己的instagram帐户

配置Instagram插件

要配置此插件,您需要“OAuth重定向URI”和“注销回调URL”,这些可以在插件设置中找到。

接下来,请按照入门文档中的前三个步骤操作。

  1. 创建Facebook应用
  2. 配置Instagram基本显示
  3. 添加Instagram测试用户

创建Facebook应用后,您将获得一个App Id和App Secret。将这些值输入到插件设置中。注意:将它们存储为环境配置是个好主意。

使用Instagram

创建访问令牌

配置插件后,您需要创建一个新的字段并将其分配给元素。为了测试,我建议创建一个新的“Instagram”字段并将其分配给全局集。

编辑全局集,并点击您创建的字段中的“连接Instagram”。确保您要连接的用户是入门文档第3步中设置的一个测试用户。

如果一切顺利,您将被要求授权您的Facebook应用,将创建一个长期访问令牌并显示在您的自定义字段中。

保存全局集。

获取用户媒体

一旦您有了令牌,您就可以获取连接用户的媒体。在您的模板中粘贴以下内容(将entry.instagramToken更改为您的全局字段名称。

{# Check if a token is set #}
{% if entry.instagramToken %}
    {# Fetch the user media #}
    {% set userMedia = craft.instagram.fetchUserMedia(entry.instagramToken) %}
    {# Check userMedia was returned #}
    {% if userMedia.data|default() | length %}
        {# Loop over the user media #}
        {% for entry in userMedia.data %}
            {# Output the image #} 
            <img src="{{ entry.media_url }}" alt="{{ entry.caption|default() }}" />
        {% endfor %}
    {% endif %}
{% endif %}

craft.instagram.fetchUserMedia(entry.instagramToken)的输出与instagram API匹配

{
  "data": [
    {
      "id": "17895695668004550",
      "caption": ""
    },
    {
      "id": "17899305451014820",
      "caption": ""
    },
    {
      "id": "17896450804038745",
      "caption": ""
    },
    {
      "id": "17881042411086627",
      "caption": ""
    }
  ],
  "paging": {
    "cursors": {
      "after": "MTAxN...",
      "before": "NDMyN..."
      },
    "next": "https://graph.faceb..."
  }
}

选项

craft.instagram.fetchUserMedia(token, [options])接受两个参数

  1. token (必需):保存在字段中的访问令牌
  2. options (可选):一个包含两个可能键的数组
    • cache:缓存请求的秒数。默认值是null(无缓存)。遵循Yii标准,0是无限。
    • fields:字段列表。默认值是caption,id,media_type,media_url,permalink,thumbnail_url,timestamp,username,children

字段选项可以包含以下任何一项

缓存

建议您将 craft.instagram.fetchUserMedia() 方法用 craft {% cache %} 标签包裹,或者使用 Blitz 等其他类型的模板缓存。

Instagram 开发路线图

一些待办事项和潜在功能的想法

  • 发布它
  • 实现取消授权回调
  • 检查 PHP 7.3 和 7.2 的兼容性

Leevi Graham 提供