Instagram New API — как получить код авторизации, используя чисто PHP-код

Основная цель: получить 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  КОД АВТОРИЗАЦИИ (я застрял здесь, как получить код только с PHP,//без внешних кликов ..)//https://www.redirecturl.com?code=AQgw#_$authorization_code = '48FduaX0g ...  ..VZIj ';//ШАГ 2 ДАЙТЕ КОД ДЛЯ ТОКЕНА $ 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.

Но если вам просто нужно отобразить канал на веб-сайте с помощью PHP, вы можете использовать этот пакет: https://packagist.org/ packages/espresso-dev/instagram-basic-display-php

Возьмите код в обратном вызове после аутентификации:

$ code = $ _GET ['code'];

А затем используйте следующие методы:

  • getOAuthToken () для получения начального токена
  • getLongLivedToken () для получения долгоживущего токена, действительного в течение 60 дней

Сохраните долгоживущий токен, чтобы его можно было использовать для получения сообщений, и просто вызывайте метод refreshToken () каждые 50 дней или около того для обновления токен в фоновом режиме и обновите токен, который вы используете.

Оцените статью
Botgadget.ru
Добавить комментарий