+++ /dev/null
-<?php
-
-/**
- * Instagram PHP
- * @author Galen Grover <galenjr@gmail.com>
- * @license http://opensource.org/licenses/mit-license.php The MIT License
- */
-
-namespace Instagram;
-
-/**
- * Auth class
- *
- * Handles authentication
- *
- * {@link https://github.com/galen/PHP-Instagram-API#authentication}
- * {@link https://github.com/galen/PHP-Instagram-API/blob/master/Examples/_auth.php}
- */
-class Auth {
-
- /**
- * Configuration array
- *
- * Contains a default client and proxy
- *
- * client_id: These three items are required for authorization
- * redirect_uri: URL that the Instagram API shoudl redirect to
- * grant_type: Grant type from the Instagram API. Only authorization_code is accepted right now.
- * scope: {@link http://instagram.com/developer/auth/#scope}
- * display: Pass in "touch" if you'd like your authenticating users to see a mobile-optimized
- * version of the authenticate page and the sign-in page.
- *
- * @var array
- * @access protected
- */
- protected $config = array(
- 'client_id' => '',
- 'client_secret' => '',
- 'redirect_uri' => '',
- 'grant_type' => 'authorization_code',
- 'scope' => array( 'basic' ),
- 'display' => ''
- );
-
- /**
- * Constructor
- *
- * @param array $config Configuration array
- * @param \Instagram\Net\ClientInterface $client Client object used to connect to the API
- * @access public
- */
- public function __construct( array $config = null, \Instagram\Net\ClientInterface $client = null ) {
- $this->config = (array) $config + $this->config;
- $this->proxy = new \Instagram\Core\Proxy( $client ? $client : new \Instagram\Net\CurlClient );
- }
-
- /**
- * Authorize
- *
- * Redirects the user to the Instagram authorization url
- * @access public
- */
- public function authorize() {
- header(
- sprintf(
- 'Location:https://api.instagram.com/oauth/authorize/?client_id=%s&redirect_uri=%s&response_type=code&scope=%s',
- $this->config['client_id'],
- $this->config['redirect_uri'],
- implode( '+', $this->config['scope'] )
- )
- );
- exit;
- }
-
- /**
- * Get the access token
- *
- * POSTs to the Instagram API and obtains and access key
- *
- * @param string $code Code supplied by Instagram
- * @return string Returns the access token
- * @throws \Instagram\Core\ApiException
- * @access public
- */
- public function getAccessToken( $code ) {
- $post_data = array(
- 'client_id' => $this->config['client_id'],
- 'client_secret' => $this->config['client_secret'],
- 'grant_type' => $this->config['grant_type'],
- 'redirect_uri' => $this->config['redirect_uri'],
- 'code' => $code
- );
- $response = $this->proxy->getAccessToken( $post_data );
- if ( isset( $response->getRawData()->access_token ) ) {
- return $response->getRawData()->access_token;
- }
- throw new \Instagram\Core\ApiException( $response->getErrorMessage(), $response->getErrorCode(), $response->getErrorType() );
- }
-
-
-}
\ No newline at end of file