menu

Engine PHP - Login instagram api


Hallo semuanya,

Tutorial kali ini kita akan mempraktekan bagaimana cara membuat login menggunakan api instagram. Engine yang akan kita buat ini akan menggunakan bahasa PHP, os windows dengan menggunakan library guzzlehttp.

Oke langsung saja kita mulai prakteknya,

Pertama, buat login instagram menggunakan akun anda terlebih dahulu, kemudian buka url https://www.instagram.com/developer/ sehingga akan muncul tampilan seperti ini,


Silahkan isi sesuai dengan keinginan anda,

Setelah sign up maka instagram pun sudah langsung memberikan hak akses kepada kita untuk menggunakan api-nya tapi hanya sebatas sandbox. Tampilannya akan tampak seperti ini,


Pada gambar diatas klik button manage dan anda akan melihat kode client id dan client secret yang akan kita gunakan untuk membuat function yang dapat membaca data-data api instagram.


Pada gambar diatas klik tab security untuk menambahkan url file tempat meletakkan function yang dapat membaca data-data api instagram tadi.

Sedangkan tab sandbox berisi user instagram mana saja yang dapat digunakan untuk percobaan login api instagram tersebut,


Tab permission digunakan untuk mengirimkan submission kepada pihak instagram agar kita sebagai developer dapat menggunakan api tersebut secara global, bukan secara sanbox yang sangat terbatas penggunaannya.


Oke sekarang buat folder project apinya, dalam hal ini url project saya akan saya tempatkan pada "http://localhost/test/test-instagram" kemudian masuk pada folder test-instagram dan buat file bernama index.php, kemudian isikan code berikut,
<?php
require 'vendor/autoload.php';
$code  = $_GET["code"] ? $_GET["code"] : null;
$client = new \GuzzleHttp\Client(['verify' => false]);

try {
    $res = $client->request("POST", "https://api.instagram.com/oauth/access_token", [
        'form_params' => [
            'client_id' => '<isi dengan kode client id anda>',
            'client_secret' => '<isi dengan kode client secret anda>',
            'grant_type' => 'authorization_code',
            'redirect_uri' => 'http://localhost/test/test-instagram', //isi dengan url project anda
            'code' => $code
        ]
    ]);
} catch (ClientException $e) {
    customException([
        "status" => $this::ERROR_LOGIN_INSTAGRAM,
        "messages" => $e->getMessage(),
    ]);
}

/** @var ResponseInterface $res */
$resultArray = json_decode($res->getBody()->getContents());

$userInstagram = $resultArray;
var_dump($userInstagram);

Jangan lupa kita menggunakan library guzzlehttp sehingga kita harus menginstallnya terlebih dahulu,
caranya?

Pertama install dulu composer pada komputer, download saja disini,

Kemudian download file composer.phar dan masukkan ke dalam folder test-instagram tadi, filenya download saja disini,

Selanjutnya, install guzzlehttp menggunakan composer dengan cara buka command prompt dan ketikkan syntax berikut, "php composer.phar require guzzlehttp/guzzle:~6.0". Tampilannya akan tampak seperti ini,


Sehingga struktur folder project engine yang kita buat akan berubah menjadi seperti ini,


Terakhir test engine dengan cara browse url ini pada browser "https://www.instagram.com/oauth/authorize/?client_id=<isi dengan kode client id anda>&redirect_uri=http://localhost/test/test-instagram&response_type=code"

Dan taraaaa, codedoctpun berhasil mendapatkan access token-nya! hasilnya akan tampak seperti ini,


===DONE!===

WHY?

1. Could not open input file: composer.phar?


itu berarti file composer.phar tidak ada pada folder project anda, silahkan download dulu seperti instruksi diatas.

2. Jika ada masalah lain silahkan contact us atau comment saja.

4 komentar

gan, folder Vendor not found gan, dari mana folder vendor tersebut gan?

folder vendor otomatis ke create setelah install guzzlehttp "php composer.phar require guzzlehttp/guzzle:~6.0"

Ambil datanya gimana bang?
misal aku mau ambil username

Dari ini "$resultArray = json_decode($res->getBody()->getContents());" kita kan sudah dapat datanya, hehe