Instagram新API-如何使用纯PHP代码获取授权代码

问题描述 投票:0回答:1

主要目的:要获得access_token,以便我可以在网站上显示我的Instagram提要。

当前,要获取访问令牌,我们转到此URL,然后单击授权以获取代码,并进一步将其交换为access_token。

 https://api.instagram.com/oauth/authorize
  ?client_id={app-id}
  &redirect_uri={redirect-uri}
  &scope=user_profile,user_media
  &response_type=code

现在,如果我正在编写一个PHP-curl脚本来发送此access_token并获取我的帖子,那么每次如何获取访问令牌,所以我每次API请求数据时都无法真正单击授权,此外,单击授权对于我来说,每60天也不是一个长期解决方案。

所以,我希望是否有办法(我可以调用此URL,并直接获取授权代码?)

到目前为止,我的脚本:

$authURL = "https://api.instagram.com/oauth/authorize
?client_id=$client_id
&redirect_uri=$redirect_uri
&scope=user_profile,user_media
&response_type=code";

//STEP 1, GET THE AUTHORIZATION CODE (i am stuck here, how to get code from only PHP, 
//without external clicks..)
//https://www.redirecturl.com?code=AQgw#_

$authorization_code = '48FduaX0g.....VZIj';

//STEP 2 GIVE THE CODE FOR TOKEN

$url = 'https://api.instagram.com/oauth/access_token';
$myjson = "
            {'client_id': $client_id,
             'client_secret': $client_secret,
             'grant_type':'authorization_code',
             'redirect_uri':$redirect_uri,
             'code': $authorization_code
            }";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myjson);
$result = curl_exec($ch);
curl_close($ch);

$insta_details = json_decode($result);
echo $insta_details['access_token'];


curl -X GET \
  'https://graph.instagram.com/17841405793187218/media?access_token=IGQVJ...'
php rest curl instagram instagram-graph-api
1个回答
0
投票

授权步骤需要人工干预才能使用用户名/密码登录。因此,无法仅通过PHP进行此操作。

但是,如果您只需要在使用PHP的网站上显示供稿,则可以使用此程序包:https://packagist.org/packages/espresso-dev/instagram-basic-display-php

在验证后在回调中获取code:>

$code = $_GET['code'];

然后使用以下方法:

  • getOAuthToken()以初始化初始令牌
  • getLongLivedToken()获取有效期为60天的令牌
  • 存储长久的令牌,以便可以用来检索帖子,并且每隔50天左右调用一次refreshToken()方法即可在后台刷新令牌并更新您正在使用的令牌。

© www.soinside.com 2019 - 2024. All rights reserved.