svenpetersen / instagram
Requires
- php: >=8.1
- psr/http-factory: ^1.0
- symfony/console: >=5.0
- typo3/cms-core: ^12.4
- typo3/cms-extbase: ^12.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.24
- friendsoftypo3/phpstan-typo3: ^0.9.0
- helmich/typo3-typoscript-lint: ^3.0
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.4
- typo3/coding-standards: ^0.6.1
- typo3/testing-framework: ^8
Suggests
- typo3/cms-scheduler: To setup the cronjobs as tasks from within the backend
README
TYPO3 扩展 "instagram"
它做什么?
TYPO3 扩展,用于在 TYPO3 网站中导入和显示 Instagram 帖子和源。
创建并自动刷新长期 API 访问令牌,将 Instagram 源/帖子作为实体导入数据库,并通过前端插件输出源/帖子。
本扩展的 V3.x 使用 "Instagram API with Instagram Login" 应用和 API。V2.x 使用 "Instagram Basic Display API",该 API 将于 2024 年 12 月 4 日达到其 EOL。
功能摘要
- 后端模块,用于轻松创建长期 API 访问令牌
- 自动刷新 API 访问令牌以保持其有效
- 导入多个 Instagram 用户源/帖子
- 使用官方 "Instagram API with Instagram Login" 访问用户源。
- 提供命令以刷新访问令牌并导入源
- 下载帖子(图片/视频)。显示它们时不需要 API 调用=没有前端性能影响。
- 以任何您喜欢的方式显示用户源/帖子
- 基于 Extbase 和 Fluid
安装
推荐使用 Composer 安装扩展。在您的基于 Composer 的 TYPO3 项目根目录下,只需执行以下操作:
composer require svenpetersen/instagram
设置
- 包含提供的静态 TypoScript
- 创建一个 Facebook "Instagram API with Instagram Login" 应用程序:请参阅官方文档以获取分步指南。
- 使用此扩展提供的后端模块在 "源" 实体中创建一个 "长期访问令牌"。
- 执行命令
instagram:import:posts {username} {storagePid} [limit|25]
从指定用户源导入帖子。 - 在页面上添加一个前端插件,以在前端输出导入的帖子。
推荐:
- 添加一个 cronjob/scheduler 任务以自动刷新 API 访问令牌 - 请参阅“自动访问令牌刷新”以获取详细信息。
- 添加一个 cronjob/scheduler 任务定期导入帖子。
兼容性
功能
自动导入帖子
此扩展包含一个命令来导入指定 Instagram 用户的(新)帖子。建议定期设置此命令运行 - 例如每天一次。
instagram:import:posts {username} {storagePid} [limit|25] [--since="01/01/2022 00:00:00" --until="12/31/2022 23:59:59" ]
参数
选项
自动访问令牌刷新
生成的长期访问令牌有效期为 60 天。当令牌至少 24 小时时可以刷新。
为了处理访问令牌的自动刷新,此扩展提供了以下命令
instagram:accesstoken:refresh-all
请确保定期运行此命令 - 例如每天通过 cronjob/scheduler 运行一次 - 以保持访问令牌有效。
禁用/启用后端模块 "Token Generator"
要禁用后端模块 - 例如在生成所有必需令牌后 - 请将以下行添加到 LocalConfiguration.php/AdditionalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['instagram.tokenGeneratorBeModule'] = false;
扩展
附加模板选择器
如果您在插件内部需要某种模板选择器,您可以通过将这些添加到中添加自己的选择
$GLOBALS['TYPO3_CONF_VARS']['EXT']['instagram']['templateLayouts']['myext'] = ['My Title', 'my value'];
保存下载文件的本地路径
默认情况下,所有导入帖子中的图片/视频都保存在 /public/fileadmin/instagram
中。您可以通过扩展设置 local_file_storage_path
选项来更改此路径。
事件
此扩展包含一些事件,您可以监听并添加自己的逻辑。
升级
v2.x 升级到 v3.x
由于“Instagram Basic Display API”将在2024年12月4日达到其生命周期结束,因此生成访问令牌的底层机制发生了变化。现在需要拥有一个“Instagram专业账户”。任何普通Instagram账户都可以通过“个人资料设置”转换为专业账户。
然后您必须使用“Instagram Token Generator”后端模块并重新运行令牌生成过程。然后此扩展将使用新的访问令牌更新您的现有Feed实体。
数据库模型、模板或插件没有任何更改。您现有的所有自定义等将像以前一样工作。
贡献
请参阅包含在本存储库中的贡献文档。
测试
此扩展附带了一套用于编码风格和单元/功能测试的测试套件。要运行测试,只需使用提供的composer脚本来运行。
composer ci:test