sofwar / instagram
一个易于使用的PHP类,用于访问Instagram的API。
Requires
- php: >=5.4.0
- ext-curl: *
This package is auto-updated.
Last update: 2024-08-28 23:08:37 UTC
README
Instagram API的PHP包装器。欢迎反馈或错误报告。
有可用的Composer包。
需求
- PHP 5.4或更高版本
- cURL
- 已注册的Instagram应用程序
开始使用
要使用Instagram API,您需要在Instagram开发者平台注册为开发者并创建一个应用程序。在注册重定向URI之前,请查看URI指南。您将收到您的client_id
和client_secret
。
请注意,Instagram主要指的是”客户端“而不是”应用程序“。因此,”Client ID“和”Client Secret“与”App Key“和”App Secret“相同。
安装
我强烈建议使用Composer以尽可能平滑地更新。
$ composer require sofwar/instagram
初始化类
use SofWar\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(<数组>/<字符串>);
数组
如果您想认证用户并访问其数据
new Instagram(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK' ));
字符串
如果您仅想访问公共数据
new Instagram('YOUR_APP_KEY');
获取登录URL
getLoginUrl(<数组>)
getLoginUrl(array( 'basic', 'likes' ));
获取OAuth令牌
getOAuthToken($code, <布尔值>)
true
: 仅返回OAuth令牌 false
[默认] : 返回OAuth令牌和已认证用户的个人资料数据
设置/获取访问令牌
- 设置访问令牌,用于后续方法调用:
setAccessToken($token)
- 获取访问令牌,如果您想将其存储以供以后使用:
getAccessToken()
用户方法
getUser(<$id>)
searchUser($name, <$limit>)
getUserMedia($id, <$limit>)
getUserLikes(<$limit>, <$max_like_id>)
getUserMedia(<$id>, <$limit>)
- 如果未定义
$id
或等于'self'
,则返回登录用户的媒体
- 如果未定义
关系方法
getUserFollows(<$limit>)
getUserFollower(<$limit>)
getUserRelationship($id)
modifyRelationship($action, $user)
$action
: 操作命令(关注/取消关注/批准/忽略)$user
: 目标用户ID
// Follow the user with the ID 1521204717 $instagram->modifyRelationship('follow', 1521204717);
请注意,modifyRelationship()
方法需要relationships
范围。
媒体方法
getMedia($id)
getMediaShort($code)
searchMedia($lat, $lng, <$distance>)
评论方法
getMediaComments($id)
addMediaComment($id, $text)
deleteMediaComment($id, $commentID)
请注意,认证方法需要comments
范围。
标签方法
getTag($name)
getTagMedia($name, <$limit>, <$min_tag_id>, <$max_tag_id>)
searchTags($name)
点赞方法
认证方法
getMediaLikes($id)
likeMedia($id)
deleteLikedMedia($id)
所有 <...>
参数都是可选的。如果未定义限制,则返回所有可用的结果。
签名头
为了防止您的访问令牌被盗,Instagram 建议您使用 API 秘密的哈希值、调用端点和参数来对您的请求进行签名。
- 在您的 Instagram 客户端设置中激活 "强制签名头"。
- 在您的 Instagram 类中启用签名头
$instagram->setSignedHeader(true);
- 您已经准备好了!现在,所有请求都将通过签名头进行加密。
在 Instagram API 文档 中详细了解其工作原理。
分页
每个端点都有一个最大结果范围,因此将 limit
参数增加到限制以上不会有所帮助(例如,getUserMedia()
的限制为 90)。
此时,“分页”功能就派上用场了。只需将一个对象传递给 pagination()
方法,即可接收下一个数据集
$photos = $instagram->getTagMedia('kitten'); $result = $instagram->pagination($photos);
使用 do-while
循环进行迭代。
如果您需要有关端点的更多信息,请查看 Instagram API 文档。
变更日志
请参阅 变更日志文件 获取更多信息。
在 BSD 许可证 下发布。