Instagram oauth - код ошибки 400 не найден

Проблема началась два дня назад и затронула около 70% наших пользователей. Эта ошибка не зависит от IP, библиотек или конфигурации сервера.

Instagram игнорирует мои запросы, Facebook тоже делает.

Я пробовал reset клиентский секрет, менял IP и область, поэтому ничего не помогло.

Другие пользователи сообщают о той же проблеме: https://news.ycombinator.com/item?id=13178789

Возможно, кто-то из Instagram/Facebook читает StackOverflow и может дать некоторые рекомендации или прояснить эту ситуацию?

Ответы

Ответ 1

Я вижу это последовательно. После большого исследования (целый день), похоже, что Instagram изменил свой главный хост API для аутентификации с https://api.instagram.com до https://www.instagram.com и перенаправить с помощью 302.

Если ваш код отправляет POST на api.instagram.com, он перенаправляется, и (я угадываю здесь) Instagram считает это как два запроса.

Я изменил api.instagram.com в мой код oauth до www.instagram.com и смог получить токен доступа.

Ответ 2

Похоже, что Instagram api перемещает api.instagram.com в www.instagram.com с перенаправлением 302.

Если вы используете omniauth-instagram gem, вы можете использовать это исправление:

#config/initializers/omniauth_instagram_api_path.rb

module OmniAuth
  module Strategies
    class Instagram
      option :client_options, {
        :site => 'https://www.instagram.com',
        :authorize_url => 'https://www.instagram.com/oauth/authorize',
        :token_url => 'https://www.instagram.com/oauth/access_token'
      }
    end
  end
end

Цель - заменить api.instagram.com на www.instagram.com.

Мне удалось создать мое приложение для создания и производства.

Ответ 3

Также есть эта проблема. Если вы входите в систему через Интернет в Instagram, а затем попробуйте поток auth, кажется, это работа.