Instagram Basi c токен доступа к API недействителен - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь интегрироваться с новым api instagram, так как мой канал больше не работает, я настроил свое приложение и дал ему необходимые вещи, когда я делаю запрос, поэтому в моем случае

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

он берет меня в Instagram, просит меня войти в Instagram, я затем перенаправлен обратно в uri перенаправления и в URL-адресе он имеет следующее? code = XXXXX, а затем большая длинная строка того, что я предполагаю, является токеном доступа, но когда я пытаюсь использовать его, он не работает, я попытался вставить его в отладчик токена доступа facebook и написано: «Недействительный токен доступа OAuth».

вот как я пытаюсь его использовать https://graph.instagram.com?fields=media_url&access_token=XXXXX

1 Ответ

0 голосов
/ 09 июля 2020

Нет, эта часть «кода» не является токеном доступа. Но это нужно, чтобы получить токен доступа. Когда у вас есть «code = XXXXX # _», возьмите часть «XXXXX» . Обратите внимание - вам нужно удалить "#_" в конце.

Затем вы должны сделать запрос POST, как говорится в документации. В зависимости от того, какую технологию вы используете, вы можете сделать это с внутренними функциями. Эх, в Rails вы можете использовать Curl :: Easy.http_post ()

Они используют эту bash строку:

curl -X POST \ https://api.instagram.com/oauth/access_token \ -F client_id={app-id} \ -F client_secret={app-secret} \ -F grant_type=authorization_code \ -F redirect_uri={redirect-uri} \ -F code={code}

client_id = ваш идентификатор клиента instagram

client_secret = ваш секрет.

(вы можете найти оба на странице разработчика facebook под вами Instagram Basi c Вкладка Display.

grant_type = authorization_code (оставьте как здесь)

redirect_uri = это страница, по которой вы будете перемещаться после получения токена

code = "XXXXX" часть из "code = XXXXX"

В ответе сервера вы получите объект с полями user_id и access_token. Обратите внимание, что этот токен истекает через 1 час . Но вы можете обменять его на долгосрочный токен на 60 дней.

Используйте этот шаблон, чтобы получить его:

https://graph.instagram.com/access_token?grant_type=ig_exchange_token&client_secret=#{YOUR_CLIENT_SECRET}&access_token=#{SHORT_TERM_TOKEN_YOU_JUST_RECEIVED]

Он должен вернуть объект с 2 полями: сам жетон долгой жизни и количество секунд до истечения срока.

Надеюсь, это поможет.

...