propeopleua/instagram

一个易于使用的PHP类,用于访问Instagram的API。

v2.3 2014-11-29 13:10 UTC

This package is auto-updated.

Last update: 2024-09-10 21:19:34 UTC


README

注意:从今天(2018年1月30日)起,我们将在Instagram Graph API上推出三个新功能,旨在帮助商家更好地管理他们在Instagram上的有机存在。作为我们API更改的一部分,我们还将从2018年7月31日开始在未来两年内弃用较旧的Instagram API平台。请参阅完整的摘要 此处

注意:在2015年11月17日[Instagram](http://developers.instagram.coThe)发布了以下端点将立即弃用:API更改。2015年11月17日之前创建的应用程序不会受到影响,直到2016年6月。2015年11月17日或之后创建的应用程序需要使用其更新的API。请注意,此库尚不支持他们的新更新。有关更多信息,请参阅 #182

Instagram API的PHP包装器。欢迎反馈或错误报告。

Total Downloads Latest Stable Version License

Composer 包可用。
支持 Instagram视频签名头

要求

  • PHP 5.3或更高版本
  • cURL
  • 注册Instagram应用

开始使用

要使用Instagram API,您必须在Instagram开发者平台注册为开发者并创建一个应用程序。在注册重定向URI之前,请查看uri指南。您将收到您的 client_idclient_secret

请注意,Instagram主要是指”客户端“而不是”应用程序“。因此,”客户端ID“和”客户端密钥“与”应用程序密钥“和”应用程序密钥“相同。

开始的好地方是示例项目

安装

我强烈建议使用Composer来尽可能平滑地更新。

$ composer require propeopleua/instagram

初始化类

use MetzWeb\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(<数组>/<字符串>);

数组 如果您想验证用户并访问其数据

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>/<false>)

true : 仅返回OAuth令牌
false [默认值] : 返回OAuth令牌和验证用户资料的配置文件数据

设置/获取访问令牌

  • 设置访问令牌,以便进行后续方法调用:setAccessToken($token)
  • 获取访问令牌,如果您想将其存储以供以后使用:getAccessToken()

用户方法

公共方法

  • getUser($id)
  • searchUser()
  • getUserMedia($limit = 0, $min_id = null, $max_id = null)

验证方法

  • getUser()
  • getUserMedia( <$limit>)

用户端点示例响应。

标签方法

公共方法

  • getTag($name)
  • getTagMedia($name)
  • searchTags($name)

标签端点示例响应。

Instagram视频

Instagram条目通过一个type属性(imagevideo)来标记,这允许你识别视频。

如何使用Video.js嵌入Instagram视频的示例可以在/example文件夹中找到。

请注意:Instagram目前不允许过滤视频。

签名头部

为了防止您的访问令牌被盗,Instagram建议您使用API密钥的哈希值、调用端点和参数来对您的请求进行签名。

  1. 在您的Instagram客户端设置中激活"强制签名头部"
  2. 在您的Instagram类中启用签名头部
$instagram->setSignedHeader(true);
  1. 现在一切就绪!现在,所有您的请求都将通过签名头部进行加密。

Instagram API文档中详细了解其工作原理。

分页

每个端点都有最大结果范围,因此提高limit参数超过限制不会有所帮助(例如,getUserMedia()的限制为90)。

这就是“分页”功能发挥作用的地方。只需将一个对象传递给pagination()方法,即可接收下一数据集。

$photos = $instagram->getTagMedia('kitten');

$result = $instagram->pagination($photos);

使用do-while循环进行迭代。

重定向URL示例

如果您需要有关端点的更多信息,请参阅Instagram API文档

示例应用

Image

此示例项目位于example/文件夹中,可以帮助您入门。代码有良好的文档,并引导您完成OAuth2流程的所有必需步骤。感谢Ricardo de Zoete Pro提供的出色的Instagram图标。

更新日志

有关更多信息,请参阅更新日志文件

致谢

版权所有(c)2011-2015 - 由Christian Metz编写

BSD许可证下发布。