emmanueln-nike / instagram
一个易于使用的PHP类,用于laravel项目以使用Instagram的API。
Requires
- php: >=5.4.0
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 19:58:39 UTC
README
更新后的Instagram API for Laravel
Instagram API的PHP包装器。欢迎反馈或错误报告。
Composer包可用。
支持Instagram视频和签名头部。
需求
- PHP 5.3或更高版本
- cURL
- 已注册的Instagram应用
开始使用
要使用Instagram API,您需要在Instagram开发者平台注册为开发者并创建一个应用程序。在注册重定向URI之前,请查看uri指南。您将收到您的client_id
和client_secret
。
请注意,Instagram主要指的是”客户端“而不是”应用“。因此,”客户端ID“和”客户端密钥“与”应用密钥“和”应用密钥“相同。
一个好的开始地方是示例项目。
安装
强烈建议使用Composer以尽可能平滑地保持更新。
$ composer require "emmanueln-nike/instagram:dev-master"
将服务提供者添加到config/app.php中的提供者数组
$ Emmanueln\Instagram\InstagramServiceProvider::class
配置
运行命令以发布配置文件
$ php artisan vendor:publish --provider="Emmanueln\Instagram\InstagramServiceProvider"
这将在您的配置目录中创建一个instagram.php文件。在此处,您必须输入您的Instagram API密钥、API密钥和回调URL。
初始化类
use Emmanueln\Instagram\Instagram; $instagram = new Instagram(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK' )); echo "<a href='{$instagram->getLoginUrl()}'>Login with Instagram</a>";
用户认证(OAuth2)
// grab OAuth callback code $code = $_GET['code']; $data = $instagram->getOAuthToken($code); echo 'Your username is: ' . $data->user->username;
获取用户点赞
// set user access token $instagram->setAccessToken($data); // get all user likes $likes = $instagram->getUserLikes(); // take a look at the API response echo '<pre>'; print_r($likes); echo '<pre>';
所有方法返回API数据json_decode()
- 因此您可以直接访问数据。
可用方法
设置Instagram
new Instagram(<数组>/<字符串>/<null>);
array
如果您想对用户进行认证并访问其数据而不使用config/instagram.php
new Instagram(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK' ));
string
如果您只想访问公共数据
new Instagram('YOUR_APP_KEY');
null
如果您想对用户进行认证并访问其数据通过config/instagram.php
new Instagram();
注意,使用null
,您必须在config/instagram.php文件中设置您的配置
获取登录URL
getLoginUrl(<数组>)
getLoginUrl(array( 'basic', 'likes' ));
可选的作用域参数
获取OAuth令牌
getOAuthToken($code, <true>/<false>)
true
: 仅返回OAuth令牌
false
[默认] : 返回OAuth令牌和认证用户的配置文件数据
设置/获取访问令牌
- 设置访问令牌,以用于后续方法调用:
setAccessToken($token)
- 获取访问令牌,如果您想将其存储以供以后使用:
getAccessToken()
用户方法
公共方法
getUser($id)
searchUser($name, <$limit>)
getUserMedia($id, <$limit>)
认证方法
getUser()
getUserLikes(<$limit>)
getUserFeed(<$limit>)
getUserMedia(<$id>, <$limit>)
- 如果没有定义
$id
或等于'self'
,它将返回登录用户的媒体
- 如果没有定义
关系方法
认证方法
getUserFollows()
getUserFollower()
getUserRelationship($id)
modifyRelationship($action, $user)
$action
: 动作命令(关注 / 取消关注 / 封禁 / 解封 / 批准 / 拒绝)$user
: 目标用户 ID
// Follow the user with the ID 1574083 $instagram->modifyRelationship('follow', 1574083);
请注意,modifyRelationship()
方法需要 relationships
作用域。
媒体方法
公共方法
getMedia($id)
- 认证用户将收到信息,是否喜欢查询的媒体
getPopularMedia()
searchMedia($lat, $lng, <$distance>, <$minTimestamp>, <$maxTimestamp>)
$lat
和$lng
是坐标,必须是如下的浮点数:48.145441892290336
,11.568603515625
$distance
: 米为单位的径向距离(默认为 1km = 1000,最大为 5km = 5000)$minTimestamp
: 返回的所有媒体都将在此时间戳之后(默认:5天前)$maxTimestamp
: 返回的所有媒体都将在此时间戳之前(默认:现在)
评论方法
公共方法
getMediaComments($id)
认证方法
addMediaComment($id, $text)
- 访问受限: 请通过电子邮件
apidevelopers[at]instagram.com
申请访问权限
- 访问受限: 请通过电子邮件
deleteMediaComment($id, $commentID)
- 评论必须由认证用户编写
请注意,认证方法需要 comments
作用域。
标签方法
公共方法
getTag($name)
getTagMedia($name)
searchTags($name)
点赞方法
认证方法
getMediaLikes($id)
likeMedia($id)
deleteLikedMedia($id)
所有 <...>
参数都是可选的。如果未定义限制,则返回所有可用结果。
Instagram 视频
Instagram 条目带有 type
属性(image
或 video
),这允许您识别视频。
如何在 Video.js 中嵌入 Instagram 视频,示例可以在 /example
文件夹中找到。
请注意: Instagram 目前不允许过滤视频。
签名头部
为了防止您的访问令牌被盗,Instagram 建议使用 API 秘密的哈希值、调用的端点和参数来对您的请求进行签名。
- 在您的 Instagram 客户端设置中激活 "强制签名头部"。
- 在您的 Instagram 类中启用签名头部
$instagram->setSignedHeader(true);
- 您已经准备好!现在,所有请求都将通过签名头部进行安全加密。
有关其工作原理的更多详细说明,请参阅 Instagram API 文档。
分页
每个端点都有一个最大结果范围,因此将 limit
参数增加到限制之上不会有所帮助(例如,getUserMedia()
的限制为 90)。
此时,“分页”功能就派上用场了。只需将一个对象传递给 pagination()
方法,即可接收下一个数据集。
$photos = $instagram->getTagMedia('kitten'); $result = $instagram->pagination($photos);
使用 do-while
循环进行迭代。
重定向 URL 示例
请参阅 Instagram 文档以获取重定向 URI 的示例 Instagram API 文档。
示例应用程序
本示例项目位于tests/example/
文件夹中,可以帮助您开始。代码有良好的文档记录,并指导您完成OAuth2流程的所有必需步骤。感谢Ricardo de Zoete Pro提供的出色的Instagram图标。
更多示例和教程
如果您也需要分享代码示例,请告诉我。
鸣谢
版权所有(c)2016 - Emmanuel Ikechukwu N.
感谢Christian Metz(初始作者) - http://cosenary.github.com/Instagram-PHP-API
在GNU许可协议下发布。