elevencodes/instagram-laravel

Instagram Service Provider for Laravel 4

Installs: 3 396

Dependents: 0

Stars: 34

Watchers: 3

Forks: 7

Language: PHP

2.0.5 2014-06-20 07:39 UTC

README

Build Status Coverage Status Latest Stable Version Total Downloads

A simple Laravel 4 service provider for including the PHP Instagram API.

Installation

The Instagram Service Provider can be installed via Composer by requiring the elevencodes/instagram-laravel package.

{
    "require": {
        "laravel/framework": "4.1.*",
        "php-instagram-api/php-instagram-api": "dev-master",
        "elevencodes/instagram-laravel": "2.0.*@dev"
    }
}

If you are using the Laravel 4.0, use "elevencodes/instagram-laravel": "1.*" instead.

Usage

To use the Instagram Service Provider, you must register the provider when bootstrapping your Laravel application.

Use Laravel Configuration

Run config:publish artisan command and update the package configuration file.

php artisan config:publish elevencodes/instagram-laravel

Find the providers key in app/config/app.php and register the Instagram Service Provider.

    'providers' => array(
        // ...
        'Elevencodes\InstagramLaravel\InstagramLaravelServiceProvider',
    )

Find the aliases key in app/config/app.php and add in our Instagram alias.

    'aliases' => array(
        // ...
        'Instagram'       => 'Elevencodes\InstagramLaravel\Facades\InstagramLaravel',
    )

Authentication

The following example uses the Instagram Service Provider to authenticate user.

Add the following methods in your Users Controller.

    public function getLogin()
    {
        if (Session::has(Config::get('instagram::session_name')))
            Session::forget(Config::get('instagram::session_name'));

        Instagram::authorize();
    }

    public function getAuthorize()
    {
        Session::put(Config::get('instagram::session_name'), Instagram::getAccessToken(Input::get('code')));

        return Redirect::to('/');
    }

    public function getLogout()
    {
        Session::forget(Config::get('instagram::session_name'));

        return Redirect::to('/');
    }

Add the following routes in your routes.php.

Route::get('/users/authorize', array('as' => 'authorize', 'uses' => 'UsersController@getAuthorize'));
Route::get('/login', array('as' => 'login', 'uses' => 'UsersController@getLogin'));
Route::get('/logout', array('as' => 'logout', 'uses' => 'UsersController@getLogout'));

Example

Get current user

You can use static call to get the current authenticated user.

$user = Instagram::getCurrentUser();

Reference