pecee / instagram-sdk
一个易于使用的PHP类,用于访问Instagram的API。
Requires
- php: >=5.3.0
- ext-curl: *
README
Instagram API的PHP包装器。
欢迎反馈或错误报告。
现在支持 Instagram视频 响应。
要求
- 注册的Instagram应用
- PHP 5.3或更高版本
- cURL
开始使用
要使用OAuth通过Instagram API,您必须在Instagram开发者平台注册自己作为开发者并设置应用。注册重定向URI之前,请查看uri指南。
请注意,Instagram主要指代”客户端“而不是”应用“。因此,”客户端ID“和”客户端密钥“与”应用密钥“和”应用密钥“相同。
一个好的开始地方是示例应用。
初始化类
纯PHP
<?php require '../vendor/autoload.php'; $instagram = new Andreyco\Instagram\Client(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK', 'scope' => array('basic'), )); echo "<a href='{$instagram->getLoginUrl()}'>Login with Instagram</a>"; ?>
Laravel
此包提供了开箱即用的Laravel支持。以下步骤是设置此包所需的。
配置应用
// publish configration file php artisan config:publish andreyco/instagram --path vendor/andreyco/instagram/src/Support/Laravel/config // Edit app/config/packages/andreyco/instagram/config/config.php array ( 'clientId' => 'APPLICATION_ID', 'clientSecret' => 'APPLICATION_SECRET', 'redirectUri' => 'AUTH_REDIRECT', 'scope' => array('basic'), )
添加服务提供者和注册门面
'providers' => array( 'Andreyco\Instagram\Support\Laravel\ServiceProvider\Instagram', ), 'aliases' => array( 'Instagram' => 'Andreyco\Instagram\Support\Laravel\Facade\Instagram', ),
echo "<a href='" . Instagram::getLoginUrl() . "'>Login with Instagram</a>";
用户认证(OAuth2)
<?php // Grab OAuth callback code $code = $_GET['code']; $data = $instagram->getOAuthToken($code); echo 'Your username is: ' . $data->user->username; ?>
获取用户点赞
<?php // 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(<array>/<string>);
array
如果您想验证用户并访问其数据
new Instagram(array( 'apiKey' => 'YOUR_APP_KEY', 'apiSecret' => 'YOUR_APP_SECRET', 'apiCallback' => 'YOUR_APP_CALLBACK' ));
string
如果您 仅 想访问公共数据
new Instagram('YOUR_APP_KEY');
获取登录URL
getLoginUrl(<array>,<string>)
getLoginUrl(array( 'basic', 'likes' ), 'uMFYKG5u6v');
可选的作用域参数:有关作用域的更多信息,请访问 https://www.instagram.com/developer/authorization/
获取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
<?php // 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 目前不允许过滤视频。
分页
每个端点都有一个最大结果范围,因此提高 limit
参数的值将不会有所帮助(例如,getUserMedia()
的限制为 90)。
这时,“分页”功能就派上用场了。
只需将一个对象传递给 pagination()
方法,即可接收下一个数据集
<?php $photos = $instagram->getTagMedia('kitten'); $result = $instagram->pagination($photos); ?>
使用 do-while
循环进行迭代。
重定向 URL 的示例
如果您需要有关端点的更多信息,请查看 Instagram API 文档。
示例应用
此示例项目位于 example/
文件夹中,可帮助您入门。
代码有良好的文档,并带您完成 OAuth2 流程的所有必要步骤。
感谢 Ricardo de Zoete Pro 提供的出色 Instagram 图标。
更多示例和教程
如果需要分享代码示例,请告知。
历史记录
Instagram 3.2.0 - 09/07/2014
功能
通过客户端构造函数添加设置应用范围权限选项。功能
您可以为getLoginUrl
方法提供一个可选的状态参数,以防止 CSRF。功能
抛出特定的异常而不是通用异常(对于处理多个错误情况很有用)。
Instagram 3.1.0 - 09/07/2014
功能
支持开箱即用的 Laravel(但仍为框架无关)。
Instagram 3.0.0 - 2014年8月7日
功能
PSR-4 自动加载,发布 Composer 包
Instagram 2.1 - 2014年1月30日
更新
在searchMedia()
方法中添加了 min 和 max_timestamp更新
为getUserMedia()
方法添加了公共身份验证修复
支持不一致的分页返回类型(关系端点)
Instagram 2.0 - 2013年12月24日
发布
版本 2.0
Instagram 2.0 测试版 - 2013年11月20日
功能
添加了 位置 端点更新
更新示例项目以显示 Instagram 视频
Instagram 2.0 alpha 4 - 2013年11月1日
功能
实现了评论端点功能
新增了一个具有华丽 GUI 的示例更新
改进了文档
Instagram 2.0 alpha 3 - 2013年9月4日
合并
合并主分支更新更新
更新文档bug
/change
禁用 cURL CURLOPT_SSL_VERIFYPEER(修复 #6, #7, #8, #16)功能
添加了 cURL 错误消息功能
在getTagMedia()
方法中添加了limit
Instagram 2.0 alpha 2 - 2013年6月14日
功能
改进了分页功能变更
在searchMedia()
方法中添加了distance
参数(感谢 @jonathanwkelly)
Instagram 2.0 alpha 1 - 2012年5月28日
功能
添加了分页方法功能
添加了用户关系端点功能
为getLoginUrl()
方法添加了作用域参数表
Instagram 1.5 - 2012年1月31日
发布
第二个主版本功能
添加了标签端点变更
编辑了 "入门" 示例变更
现在可以直接将getOAuthToken()
对象传递给setAccessToken()
Instagram 1.0 - 2011年11月20日
发布
第一次公开发布功能
添加了带文档代码的示例 App更新
新增详细文档
Instagram 0.8 - 2011年11月16日
发布
第一次初始发布版本功能
使用配置数组或字符串初始化类(见示例)
Instagram 0.5 - 2011年11月12日
发布
测试版更新
简短文档
致谢
版权(c)2014 - Andrej Badin 在 BSD 许可证 下发布。
Instagram-PHP-API 包含了从 Christian Metz 的 Instagram-PHP-API 中取出的代码,也根据 BSD 许可证 许可。