Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 577
AFS Avatar asked Aug 25 '16 10:08

AFS


People also ask

How do I get my curl token?

To obtain the secure token, you make a 'get token' API call in which you supply the 'application_id' and 'application_key' generated when you set up API access. You must also supply an existing User value. The token value is then returned.


1 Answers

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

like image 188
Ebin Sebastian Avatar answered Oct 20 '22 00:10

Ebin Sebastian