Мой код работает нормально, получая код авторизации, а затем получая токен доступа. Но этот кажется неправильным. Я знаю, что он должен истечь через один час, и вот в чем может быть проблема. Но независимо от того, как часто я обновляю sh свою страницу локального хоста и нажимаю на ссылку для авторизации, мне кажется, что я получаю один и тот же токен. Не вините мою структуру, пожалуйста. Функции еще впереди. Я запускаю это php на своем локальном хосте.
<html>
<body>
<?php
require_once( 'InstagramBasicDisplay.php' );
$client_id = '--myid--';
$redirect_uri = 'https://localhost/test';
?>
<a href = "https://www.instagram.com/oauth/authorize?client_id=<?php echo $client_id; ?>&redirect_uri=<?php echo $redirect_uri; ?>&scope=user_profile,user_media&response_type=code">
Autorisieren
</a>
<?php
// authorization code
if ( isset($_GET['code']))
{
$authorization_code = $_GET['code'];
// preparing POST request to API
// data string including necessary parameters
$data = array(
'client_id' => $client_id,
'client_secret' => '--mysecret--',
'code' => $authorization_code,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
);
// connecting to API
$url = 'https://api.instagram.com/oauth/access_token';
$ch = curl_init($url);
// url for API request
$postString = http_build_query($data, '', '&');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
if ( isset($response))
{
// access token
$access_token = $_GET['code'];
echo $access_token;
$data = array(
'fields' => array(
'account_type',
'id',
'media_count',
'username',
),
'access_token' => $access_token,
);
$url = 'https://graph.instagram.com/me';
$ch = curl_init($url);
// url for API request
$postString = http_build_query($data, '', '&');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
}
}
//--------------------------------------------------------------//
?>
</body>
</html>