How to access Instagram Feed using instagram API in Laravel?

Today, I am going to show you how to access Instagram Feed using instagram API. We can get our instagram feed without using any composer package, I simply use GuzzleHttp for getting instagram feed, We can also get location, likes, comments, images, name, id and etc.

GuzzleHttp provide use fire get request to given api, So i simply run “https://www.instagram.com/username/media” API like, It is very basic example without generate instagram token. Here you can access feed of any user by username.

Step 1: Create Route

In this step, we require to create one route for manage view layout and get method for getting username. so open your routes/web.php file and add following route.

routes/web.php

Route::get('instagram', 'InstagramController@index');
Step 2: Create Controller

In this point, now we should create new controller call InstagramController in this path app/Http/Controllers/InstagramController.php. In this controller we will manage route method, i added one method in this controller as listed bellow:

1) index()

So, copy bellow code and put in your controller file.

app/Http/Controllers/InstagramController.php

<?php


namespace App\Http\Controllers;


use Illuminate\Http\Request;


use App\Http\Requests;


class InstagramController extends Controller
{
    /**
     * Get the index name for the model.
     *
     * @return string
    */
    public function index(Request $request)
    {
    	$items = [];


    	if($request->has('username')){


	 $client = new \GuzzleHttp\Client;
	 $url = sprintf('https://www.instagram.com/%s/media', $request->input('username'));
         $response = $client->get($url);
         $items = json_decode((string) $response->getBody(), true)['items'];


    	}


    	return view('instagram',compact('items'));
    }
}
Step 3: Create View

In this step, we have to create total one blade file as listed bellow:

1. instagram.blade.php

This both blade file will help to render layout of instagram data, so let’s create file view file and put bellow code.

resources/views/instagram.blade.php

<!DOCTYPE html>
<html>
<head>
	<title>Laravel 5 Instagram API tutorial with example</title>
	<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>


<div class="container">
	<h2>Laravel Instagram API tutorial with example</h2><br/>


	<form method="GET" role="form">


		<div class="row">
			<div class="col-md-6">
				<div class="form-group">
					<input type="text" id="username" name="username" class="form-control" placeholder="Enter Instagram Username" value="{{ old('username') }}">
				</div>
			</div>
			<div class="col-md-6">
				<div class="form-group">
					<button class="btn btn-success">Search</button>
				</div>
			</div>
		</div>
	</form>


	<div class="panel panel-primary">
	  <div class="panel-heading">Instagram Feed</div>
	  <div class="panel-body">
			<table class="table table-bordered">
				<thead>
					<th>No</th>
					<th width="200px;">Id</th>
					<th>Code</th>
					<th>Image</th>
					<th>Location</th>
					<th>Total Likes</th>
					<th>Total Comments</th>
				</thead>
				<tbody>
					@if(!empty($items))
					 @foreach($items as $key => $item)
					   <tr>
					    <td>{{ ++$key }}</td>
					    <td>{{ $item['id'] }}</td>
					    <td>{{ $item['code'] }}</td>
					    <td><img src="{{ $item['images']['standard_resolution']['url'] }}" style="width:100px;"></td>
					    <td>{{ isset($item['location']['name']) ? $item['location']['name'] : '' }}</td>
					    <td>{{ $item['likes']['count'] }}</td>
					    <td>{{ $item['comments']['count'] }}</td>
					   </tr>
					  @endforeach
					@else
					   <tr>
					    <td colspan="4">There are no data.</td>
					   </tr>
					@endif
				</tbody>
			</table>
	  </div>
	</div>


</div>


</body>
</html>

Read Also: How to use GEO Chart Example by using lavacharts Laravel?

Thanks for read. I hope it help you. For more you can follow us on facebook

Shahriar Sagor

My name is Shahriar sagor. I'm a developer. I live in Bangladesh and I love to write tutorials and tips that will help to other Developer's. I am a big fan of PHP, Javascript, JQuery, Laravel, Codeigniter, VueJS, AngularJS and Bootstrap from the early stage.