Check Availability
Laravel-How to use Instagram feed in laravel with example
Use the below command to install the laravel via composer.
composer create-project laravel/laravel instagram
We will use Instagram PHP Scraper to feed Instagram with laravel application, if you want to learn more about this package you can visit this link.
Use the below command to install Instagram PHP scraper via composer.
composer require raiym/instagram-php-scraper phpfastcache/phpfastcache
By using the below command a controller file will be created inside app/http/controller folder. I am creating a folder named gallery controller.
php artisan make:controller GalleryController
Now we have to add a route inside web.php file, I am going to create the below route to show images in my gallery.
Route::get('gallery', [App\Http\Controllers\GalleryController::class, 'index'])->name('gallery');
Create file named as gallery.blade.php inside resources/views/gallery.blade.php and add the below code into it.
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="container">
<div id="portfolio" class="clearfix three-column marbot30 isotope" style="position: relative; overflow: hidden; height: 1994px;">
@foreach ($images as $key => $image)
<div class="element transition laser-eye-surgery isotope-item" data-category="laser-eye-surgery" style="position: absolute; left: 0px; top: 0px; transform: translate3d(0px, 0px, 0px);">
<figure>
<img src="{{url('insta/images/')}}/{{$key.'.png'}}" alt=" " class="img-responsive">
</figure>
</div>
@endforeach
</div> <!-- #portfolio -->
</div>
</body>
</html>
Now we will write the Instagram business logic to feed the Instagram image and show it in our laravel application.
Now go to app/HTTP/controller and open GalleryController.php and write the below logic into it.
<?php
namespace App\Http\Controllers;
use Phpfastcache\Helper\Psr16Adapter;
class GalleryController extends Controller
{
/**
* This function show the image from instagram.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$instagram = \InstagramScraper\Instagram::withCredentials(new \GuzzleHttp\Client(), 'your username', 'your password', new Psr16Adapter('Files'));
$instagram->login(); // will use cached session if you want to force login $instagram->login(true)
$instagram->saveSession(); //DO NOT forget this in order to save the session, otherwise have no sense
$account = $instagram->getAccount('kumareyecentrekec');
$accountMedias = $account->getMedias();
foreach ($accountMedias as $key => $accountMedia) {
$images[$key] = str_replace("&","&", $accountMedia->getimageHighResolutionUrl());
$path = $images[$key];
$imageName = $key.'.png';
$img = public_path('insta/images/') . $imageName;
file_put_contents($img, file_get_contents($path));
}
return view('gallery', compact('images'));
}
}
if you put the dd(do or die) on the $account variable you have the output like the below one.
So from this output, you get all the things, like a number of followers/following post like image, profile name, etc.
If you have all the things well, then you are ready for the below output. open the project and in your root type the below command
php artisan serve
Now in the browser visit this URL localhost:8000/gallery. then you have the output like the below one.
Copyright © The Crypto Inn
Designed and Developed By : Digitisement Media