AFS AFS - 3 months ago 138
PHP Question

Request instagram api acces token with cURL

I'm trying to get the acces token from instagram api this is the sample request of the documentation

curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token


and this is my code

<body>
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.instagram.com/oauth/access_token");
curl_setopt($curl,CURLOPT_POST, true);
curl_setopt($curl,CURLOPT_POSTFIELDS, "client_id=MYID&
client_secret=MY_CLIENT_SECRET&grant_type=authorization_code&
redirect_uri=http://localhost/pruebainst/pruebas.php&code=".$_GET['code']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$output = curl_exec($curl);
curl_close($curl);

echo ($output);
?>
</body>


With this code I don't get anything from curl request

Answer

Using this code will give you the Access Token in the redirecting URL.

$client_id = 'YOUR CLIENT ID';
    $client_secret ='YOUR CLIENT SECRET';
    $redirect_uri = 'YOUR REDIRECT URI';

     $auth_request_url = 'https://api.instagram.com/oauth/authorize/?client_id='.$client_id.'&redirect_uri='.$redirect_uri .'&response_type=token';
/* Send user to authorisation */
header("Location: ".$auth_request_url);

Also if you want the Access Token programmatically use this one

$client_id = 'YOUR CLIENT ID';
    $client_secret ='YOUR CLIENT SECRET';
        $redirect_uri = 'YOUR REDIRECT URI';
    $code ='Enter your code manually';

    $url = "https://api.instagram.com/oauth/access_token";
    $access_token_parameters = array(
        'client_id'                =>     $client_id,
        'client_secret'            =>     $client_secret,
        'grant_type'               =>     'authorization_code',
        'redirect_uri'             =>     $redirect_uri,
        'code'                     =>     $code
    );

$curl = curl_init($url);    // we init curl by passing the url
    curl_setopt($curl,CURLOPT_POST,true);   // to send a POST request
    curl_setopt($curl,CURLOPT_POSTFIELDS,$access_token_parameters);   // indicate the data to send
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);   // to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);   // to stop cURL from verifying the peer's certificate.
    $result = curl_exec($curl);   // to perform the curl session
    curl_close($curl);   // to close the curl session

     var_dump($result);

NOTE: $url and $redirect_uri are not same

Comments