Now implement In PHP: config.php
/* Instagram App Client Id */
define('INSTAGRAM_CLIENT_ID', 'INSTAGRAM_CLIENT_ID-XXXXXXX');
/* Instagram App Client Secret */
define('INSTAGRAM_CLIENT_SECRET', 'INSTAGRAM_CLIENT_SECRET-XXXXXXXXX');
/* Instagram App Redirect Url */
define('INSTAGRAM_REDIRECT_URI', 'INSTAGRAM_REDIRECT_URI-XXXXXXXX');
Create login with Instagram button: index.php
First Include here config.php
// include here config.php
require_once('config.php');
// Create login URl
$instURL = "https://api.instagram.com/oauth/authorize/?client_id=" . INSTAGRAM_CLIENT_ID . "&redirect_uri=" . urlencode(INSTAGRAM_REDIRECT_URI) . "&response_type=code&scope=basic";
Instagram button code
<html>
<head>
<title>Login with Instagram</title>
</head>
<body>
<a href="<?php echo $instURL; ?>">Login with Instagram</a>
</body>
</html>
function.php
Redirection page after login authentication success Instagram API Class will send the user details object in a array data format.
// Create API class for Instagram API
class InstagramAuth
{
public function GetToken($client_id, $redirect_uri, $client_secret, $code) {
$url = 'https://api.instagram.com/oauth/access_token';
$urlPost = 'client_id='. $client_id . '&redirect_uri=' . $redirect_uri . '&client_secret=' . $client_secret . '&code='. $code . '&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $urlPost);
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http_code != '200')
throw new Exception('Error : Failed to receive access token');
return $data['access_token'];
}
public function GetUserProfileInformation($access_token) {
$url = 'https://api.instagram.com/v1/users/self/?access_token=' . $access_token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($data['meta']['code'] != 200 || $http_code != 200)
throw new Exception('Error : Failed to get user information');
return $data['data'];
}
}
success.php
Redirection page after login authentication success Instagram API will send the user details object in a array data format.
session_start();
// include here config.php
require_once('config.php');
// include here function.php
require_once('function.php');
// Instagram passes a parameter 'code' in the Redirect Url
if (isset($_GET['code'])) {
try {
$instagram_C = new InstagramAuth();
// Get the access token
$access_token = $instagram_C->GetToken(INSTAGRAM_CLIENT_ID, INSTAGRAM_REDIRECT_URI, INSTAGRAM_CLIENT_SECRET, $_GET['code']);
// Get user information
$user_info = $instagram_C->GetUserProfileInformation($access_token);
echo json_encode($user_info);
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
}