Я использую API-интерфейс Instagram и хочу получить access_token, чтобы вызывать запросы api через мою собственную учетную запись. Когда я пытаюсь выполнить первый шаг и программно получить код авторизации с помощью RestTemplate, я не могу заставить его работать.Аутентификация на Instagram для получения access_token с использованием API
String AUTHORIZE_URL = "https://api.instagram.com/oauth/authorize/?client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>&response_type=code";
String url = String.format(AUTHORIZE_URL, clientId, redirectUri);
String o = restTemplate.getForObject(url, String.class);
Ответом является HTML код страницы входа, потому что Instagram требует от пользователя войти в систему, чтобы проверить, если приложение имеет право (конечно, это, так как приложение пользователь принадлежит к моей учетной записи).
Как я могу пройти аутентификацию, прежде чем бросать этот запрос, чтобы они вернули код в мой redirectUri и не жаловались на логин? Примечание: Я пробовал имитировать запрос в своей форме входа, но он вернул 403 Запрещено.
ПРИМЕЧАНИЕ. У меня уже есть действительный access_token, сгенерированный вручную, и он отлично работает, но я хочу реализовать также процесс для нового генерации нового access_token автоматически, поскольку он может аннулировать его в любое время в будущем.
Хотя наши токены доступа не указывают время истечения срока действия, ваше приложение должно обрабатывать случай, когда либо пользователь отменяет доступ, либо Instagram истекает через токен через некоторое время. Если токен больше недействителен, ответы API будут содержать «error_type = OAuthAccessTokenError». В этом случае вам нужно будет повторно аутентифицировать пользователя, чтобы получить новый действительный токен. Другими словами: не предполагайте, что ваш access_token действителен навсегда.
Я не буду использовать приложение с данными любого другого пользователя, кроме меня. Я просто хочу получить свою собственную информацию об учетной записи с помощью API. Таким образом, я просто хочу вызвать API для получения той информации, которая принадлежит моей учетной записи (той же учетной записи, где было создано приложение). Вот почему я не хочу показывать вход в экран, мне это не нужно.Весь процесс получения access_token должен быть автоматическим (от сервера к серверу), и он не потребует никакого взаимодействия с человеком. Спасибо за ваш ответ! –
Просто позвоните по адресу доступа к instagram с вашим URL-адресом перенаправления uri, областью действия и кодом доступа. Запустите еще один API Instagram, который вернет токен доступа на основе этого кода, а затем вы сможете получать данные с конечными точками пользователя. – coderz
PS: Используйте аутентификацию сервера как более безопасную (рекомендуется разработчиками Instagram, вызывая больше потоков). Если вам нужен токен прямого доступа, используйте неявный поток (менее безопасный). – coderz