如何获得Instagram集成authorization_code?

时间:2018-02-13 11:48:23

标签: curl instagram integration

请帮助,如何获得authorization_code?

curl \-F 'client_id=CLIENT-ID' \
-F 'client_secret=CLIENT-SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=YOUR-REDIRECT-URI' \
-F 'code=CODE' 

https://api.instagram.com/oauth/access_token {" error_type":" OAuthException"," code":400," error_message":&#34 ; grant_type"}

无效

这令人困惑。我需要USER_ID。

有人说,它的authorization_code是参数。但我不明白。什么是参数。

1 个答案:

答案 0 :(得分:0)

我知道,这是一个很晚的答复,但我希望它能对其他人有所帮助

PHP代码:

步骤1:使用client_id获取代码并重定向域,在该域​​中您将获得响应的代码。它将使用代码参数的查询字符串重定向到您的redirect_uri域。

https://api.instagram.com/oauth/authorize/?client_id=YOUR_CLIENT_ID&redirect_uri=http_domain_dot_com&response_type=code

第2步:使用第1步中的client_id,client_secret以及您通过redirect_uri收到的代码,发出POST请求以获取access_token。

例如,我在这里使用PHP代码:

$post = ['client_id'=> "5b623cdffe6359694fcca2f772",
    'client_secret'=> "0fafe0a956dd1bfc81c74cdd9c",
    'grant_type'=> "authorization_code",
    'redirect_uri'=> "your domain using http",
    'code'=> "58f6905548f45c35623f5cd85"];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.instagram.com/oauth/access_token');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
$result = json_decode($response);

var_dump($result);

您将获得access_token作为响应。现在,您可以使用https://api.instagram.com/v1/users/self/media/recent/?access_token=8626207.5b6cd.a45ae4d343329ed05429567966d9

访问供稿

现在您可以通过阅读json响应来打印供稿数据:

$userId = 'self';
$accessToken = '860000207.5b0000d.a4500003e004033200500950000600';
$imageNumber = '6';
$imageResolution = 'thumbnail'; // thumbnail, low_resolution, standard_resolution

$url = 'https://api.instagram.com/v1/users/' . $userId . '/media/recent/?access_token=' . $accessToken.'&count='.$imageNumber;
$args = stream_context_create(array('http' => array('timeout' => 2500,)));
$instagramFeedsData = file_get_contents($url, false, $args);
$instagramFeeds = json_decode($instagramFeedsData);

$instangramData = $instagramFeeds->data;
foreach ($instangramData as $instagramFeed) {
$instagramImage = $instagramFeed->images->$imageResolution->url;
$caption_text = 'Instagram';
if (is_object($instagramFeed->caption)) {
    $caption_text = $instagramFeed->caption->text;
}
?>
<div class="instangram-feed">
    <a href ="<?php echo $instagramFeed->link; ?>" target="_blank">
        <img src="<?php echo $instagramImage; ?>" title="<?php echo $caption_text; ?>" alt="<?php echo $caption_text; ?>"/>
    </a>               
</div>
<?php } ?>