عنوان مقاله :

ارتباط با Instagram API در لاراول

گردآوری و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 25 شهریور 1396
دسته بندی ها : لاراول

در این مقاله میخواهم به شما نشان بدهم که چطور میشه با استفاده از Instagram API به فید اینستاگرام دسترسی پیدا کنیم. ما میتونیم به فید اینستاگرام رو بدون استفاده از هیج پکیجی دسترسی داشته باشیم, من به سادگی از GuzzleHttp برای گرفتن فید اینستاگرام استفاده میکنم, ما همچنین میتونیم موقعیت, لایک ها, کامنت ها, تصاویر و نام و ID رو هم دریافت کنیم.

با GazzleHttp به سادگی میتونید آدرس "https://www.instagram.com/username/media" رو اجرا کنید و به API دسترسی داشته باشید, این یک مثال سادست بدون ایجاد توکن اینستاگرام. اینجا شما میتونید به feed هر کاربری از طریق username دسترسی پیدا کنید.

این مثال بسیار سادست و شما میتونید بصورت قدم به قدم دنبالش کنید, همچنین شما میتونید دمو رو چک کنید, که با تصویر زیر مواجه میشید. بیایید کار رو شروع کنیم.

قدم اول - ساخت مسیر

در این قدم ما نیاز داریم یک مسیر برای مدیریت view و متد get برای دریافت username بسازیم. پس فایل routes/web.php باز کرده و مسیر زیر رو بیافزایید :

Route::get('instagram', 'InstagramController@index');

قدم دوم - ساخت کنترلر

در این قدم ما می خواهیم یک کنترلر بنام InstagramController در مسیر app/http/controllers/InstagramController.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'));

    }
}

قدم سوم - ساخت View

در این قدم ما باید فایل view رو بصورت زیر بسازیم.

این فایل blade کمک میکنه تا اطلاعات خروجی اینستاگرام رو رندر کنیم, پس فایلی در مسیر 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 5 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>

نکته : اگر به خطایی برخوردید که کلاس Guzzle پیدا نشده. پس باید این پکیج رو نصب کنید. برای اینکار از طریق دستور زیر اقدام کنید :

composer require guzzlehttp/guzzle

همینطور که مشاهده می کنید, ما تونستیم به راحتی و بدون استفاده از پکیج خاصی به فید اینستاگرام دسترسی پیدا کنیم و اطلاعاتی رو ازش دریافت کنیم. 

مشاهده ی دمو

منبع

مقالات پیشنهادی

بک آپ گیری از پروژه لاراول

این پکیج یک بک آپ از اپلیکیشن شما میگیره و یک فایل zip شامل تمام مسیرها و دیتابیس هایی که شما مشخص کردید تحویل میده. این بک آپ میتونه در هر فایل سیستم...

آپلود چندتایی فایلها بصورت Ajax در لاراول 5

آپلود فایل‌ یکی از مهم‌ترین عملیات ها در محیط وب هست. امروزه سایز فایل‌ها برای آپلود بسیار بزرگ هستند و نیاز به فرآیندی داریم که در پنهان عملیات آپلود...

ساخت و مدیریت خبرنامه ها در لاراول 5

در این آموزش شما میتونید نحوه ی افزودن لیست خبرنامه, مدیریت اعضا و فرستادن ایمیل به لیست ها رو با استفاده از Api سرویس Mailchimp در فریمورک لاراول 5 ف...

چک کردن ویوها در لاراول

لاراول در هر ورژنی که بیرون میده ، معمولا چند تابع جدید به عنوان helper هم به سیستم خودش اضافه میکنه تا کار توسعه دهندها رو ساده تر کنه . در این پست س...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است