fantasyrock/instagram

Instagram PHP API 封装器

v1.0.8 2015-07-07 21:09 UTC

This package is auto-updated.

Last update: 2024-09-13 10:04:16 UTC


README

Instagram API 包

安装

安装此包的推荐方式是通过 Composer。该包可在 Packagist 上找到

您可以通过调用 composer require fantasyrock/instagram 来引入包

或将包手动添加到您的 composer.json 文件中

{
    "require": {
        "fantasyrock/instagram": "*"
    }
}

当前包与 Guzzle HTTP 客户端库 兼容,需要将其添加到您的 composer 文件中

{
    "require": {
        "guzzle/guzzle": "^6.0",
    }
}

适配器

当前包仅提供 Guzzle 作为 HTTP 适配器,但您可以通过扩展 HttpAbstract 并实现 HttpAdapterInterface 来轻松构建自己的适配器

示例

<?php 

require 'vendor/autoload.php';

use Instagram\Adapters\Http\GuzzleAdapter;
use Instagram\Instagram;

$adapter = new GuzzleAdapter('access_token');
$factory = new Instagram($adapter);

会话

作为适配器,该包目前仅支持原生会话。但像适配器一样,您也可以通过扩展 SessionAbstract 并实现 SessionAdapterInterface 来轻松构建自己的适配器

示例

<?php 

require 'vendor/autoload.php';

use Instagram\Adapters\Storage\NativeSessionAdapter;
use Instagram\Security\Credentials;

$storage     = new NativeSessionAdapter();
$credentials = new Credentials(['client_id', 'client_secret', 'redirect_uri'], $storage);

端点

  • 用户
  • 媒体
  • 标签
  • 评论
  • 点赞
  • 关系
  • 地理
  • 位置

凭证

API 需要instagram提供的有效访问令牌。如果您的应用程序已经可以访问用户令牌,则可以直接将其传递给 HttpClientAdapter,在我们的例子中是 GuzzleAdapter。

要获取访问令牌,您可以使用包中的 Credentials 部分生成登录 URL,并使用适当的适配器请求访问令牌

示例

<?php

require 'vendor/autoload.php';

use Instagram\Adapters\Http\GuzzleAdapter;
use Instagram\Adapters\Storage\NativeSessionAdapter;
use Instagram\Security\Credentials;
use Instagram\Instagram;

$storage     = new NativeSessionAdapter();
$credentials = new Credentials([
    'client_id'     => 'YOUR-CLIENT-ID',
    'client_secret' => 'YOUR-CLIENT-SECRET',
    'redirect_uri'  => 'REDIRECT-URI
  ], $storage);

// You may provide additional scope as array of desired additional permissions
$loginUrl = $credentials->getLoginUrl(['basic', 'likes']);

使用

<?php 

require 'vendor/autoload.php';

use Instagram\Adapters\Http\GuzzleAdapter;
use Instagram\Adapters\Storage\NativeSessionAdapter;
use Instagram\Security\Credentials;
use Instagram\Instagram;

$storage     = new NativeSessionAdapter();
$credentials = new Credentials([
    'client_id'     => 'YOUR-CLIENT-ID', 
    'client_secret' => 'YOUR-CLIENT-SECRET', 
    'redirect_uri'  => 'REDIRECT-URI
  ], $storage);
  
$adapter = new GuzzleAdapter($credentials->getToken());  
$factory = new Instagram($adapter);
  
  
$user = $factory->userClient();
var_dump($user->getInfo());

问题

如果您遇到任何问题或需要报告错误,请打开一个 [问题案例] (https://github.com/rockoo/InstagramAPI/issues)