chill-pills / laravel-instagram-basic-feed
Laravel 包,用于连接到 Instagram 的新 API Basic Display。获取个人用户的帖子并将它们缓存在缓存中,可以通过特定命令或使用调度程序来实现,并注意每两个月刷新令牌。
Requires
- php: ^7.3|^8.0
- espresso-dev/instagram-basic-display-php: ^1.1
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^5.1
- phpunit/phpunit: ^8.0||^9.0
This package is auto-updated.
Last update: 2024-09-11 19:04:40 UTC
README
Laravel 包,用于连接到 Instagram 的新 API Basic Display。获取个人用户的帖子并将它们缓存在缓存中,可以通过特定命令或使用调度程序来实现,并负责每两个月刷新 Instagram 令牌。
开始使用
要使用 Instagram Basic Display API,您需要注册一个 Facebook 应用并配置 Instagram Basic Display。请遵循入门指南。
需求
- PHP 7 或更高版本
- cURL
- Facebook 开发者账户
- Facebook 应用
安装
通过运行以下命令在您的应用程序中安装包
composer require chill-pills/laravel-instagram-basic-feed
在您的 .env 文件中添加并完成以下行
INSTAGRAM_VALID_OAUTH_URI= INSTAGRAM_APP_ID= INSTAGRAM_SECRET_KEY= INSTAGRAM_ACCESS_TOKEN=
对于 INSTAGRAM_VALID_OAUTH_URI 条目,您将使用在创建 Instagram 应用时在“有效的 OAuth 重定向 URI”字段中使用的相同 URI。我们将获取下一步中的 INSTAGRAM_ACCESS_TOKEN。(确保所有其他环境条目都已完整)
设置
我们需要进行以下步骤以确保我们的包配置正确:
- 允许您的应用访问您的 Instagram 账户的资料和媒体
- 从 URL 中检索授权码
- 使用授权码获取短期 API 令牌
- 将短期 API 令牌交换为长期 API 令牌
允许您的应用访问您的 Instagram 账户的资料和媒体
我们需要生成一个链接,将用户重定向到 Instagram 的“授权窗口”。您可以通过运行以下命令生成 URL
php artisan instagram-feed:get-authorization-url
在浏览器中复制并输入 URL(您的授权窗口链接应该类似于以下内容)
https://api.instagram.com/oauth/authorize ?client_id={INSTAGRAM_APP_ID} &redirect_uri={INSTAGRAM_VALID_OAUTH_URI} &scope=user_profile,user_media &response_type=code
接下来,您将看到授权窗口
点击授权
从 URL 中检索授权码
您将被重定向到 INSTAGRAM_VALID_OAUTH_URI。如果查看浏览器地址栏,您应该注意到 URL 中附加了一个授权码,该授权码已附加到重定向 URL 上。如下所示
{INSTAGRAM_VALID_OAUTH_URI}?code=AQBv...Xw#_
复制授权码,重定向 URL 中的授权码是 code= 之后的内容,直到(但不包括)结尾的 #_。
使用授权码获取短期 API 令牌并将其交换为长期 API 令牌
现在,使用授权码,我们将生成可以在我们的应用程序中使用的访问令牌。使用以下命令生成令牌。我们生成长期 access_token,因为这些令牌有效期为 60 天。将 authorization_code 替换为上一步中的代码。
php artisan instagram-feed:setup-new-access-token <authoriczation-code>
太棒了!现在,有了这个长期访问令牌,您可以在接下来的 60 天内向 API 发送请求。您还可以刷新令牌,将其延长 60 天,只要令牌未过期并且至少有 24 小时旧(并且没有被您的 Instagram 用户取消授权您的应用所撤销)。
用法
有两个命令可以让你获取你的信息流或更新访问令牌。
php artisan instagram-feed:crawl php artisan instagram-feed:refresh-key
您可以添加以下调度程序的命令来自动执行这些命令
protected function schedule(Schedule $schedule) { $schedule->command(InstagramCrawlFeed::class)->hourly(); $schedule->command(InstagramRefreshAccessToken::class)->monthly(); }
不要忘记在您的 app/Console/Kernel.php 文件中启用 Laravel Basic Scheduler 上的 CRON
* * * * * cd /home/path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
要在您的页面上显示 Instagram 信息流,只需添加以下 Blade 命令以包含部分到您的页面中。
@include('instagram-basic-feed::instagram-post')
您可以将用于搜索帖子的标签传递给 @include
@include('instagram-basic-feed::instagram-post', ['hastag' => '#duckhunt'])
如果您想修改显示Instagram帖子的视图本身
php artisan vendor:publish --tag=instagram-basic-feed-view
MIT许可证(MIT)。更多信息请参阅许可证文件