romaricp / instagram
用于访问Instagram API的简单PHP类
Requires
- php: >=5.3.0
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-14 19:20:04 UTC
README
注意: 2015年11月17日 Instagram 对其API进行了更改。2015年11月17日之前创建的应用程序不会受到影响,直到2016年6月。2015年11月17日或之后创建的应用程序需要使用更新的API。请注意,此库尚不支持其新更新。
Instagram API的PHP包装器。欢迎反馈或错误报告。
Composer 包可用。
支持 Instagram 视频 和 签名头部。
要求
- PHP 5.3或更高版本
- cURL
- 注册Instagram应用程序,具有新的2016作用域
开始使用
要使用Instagram API,您必须在 Instagram开发者平台 注册为开发者并创建一个应用程序。在注册重定向URI之前,请查看 uri指南。您将收到您的 client_id 和 client_secret。
安装
我强烈建议使用 Composer 以确保更新尽可能顺利。
$ composer require romaricp/instagram
初始化类
use RomaricP\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;
所有方法都返回API数据 json_decode() - 因此您可以直接访问数据。
可用方法
设置Instagram
new Instagram(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK' ));
string 如果您 仅 想要访问公共数据
new Instagram('YOUR_APP_KEY');
获取登录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($id, <$limit>)getUserFollower($id, <$limit>)getUserRelationship($id)modifyRelationship($action, $user)$action: 操作命令(关注 / 取消关注 / 拦截 / 解除拦截 / 批准 / 拒绝)$user: 目标用户ID
// Follow the user with the ID 1574083 $instagram->modifyRelationship('follow', 1574083);
请注意,modifyRelationship() 方法需要 关系 作用域。
媒体方法
公共方法
getMedia($id)- 认证用户将收到信息,查询的媒体是否被点赞
getPopularMedia()searchMedia($lat, $lng, <$distance>, <$minTimestamp>, <$maxTimestamp>)$lat和$lng是坐标,必须是浮点数,如:48.145441892290336,11.568603515625$distance:以米为单位的径向距离(默认为1公里=1000,最大为5公里=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),允许您识别视频。
如何在 /example 文件夹中通过使用 Video.js 嵌入Instagram视频的示例,可以在此处找到。
请注意: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 API 文档。
如果您还需要分享代码示例,请告诉我。
变更日志
请参阅 变更日志文件 获取更多信息。
鸣谢
版权(c)2011-2015 - 由 Christian Metz 编程,在 BSD 许可证 下发布。