2016-12-18 6 views
8

Я вижу эту ошибку на моем реальном сервере с помощью API Instagram.Идентификационный код API-схемы Instagram не найден или уже был использован

{ 
    "Error":true, 
    "message":"Matching code was not found or was already used." 
} 

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

ответ

5

Есть куча разработчиков, жалующихся на эту же проблему на https://news.ycombinator.com/item?id=13178789. Я не думаю, что снятие флажка «Отключить неявный OAuth» устраняет проблему, поскольку я уже пробовал это, и это не сработало.

Лучшее, что вы можете сделать, это отправить отчет на instagram, используя идентификатор вашего клиента, чтобы оказать определенное давление на их сторону, чтобы исправить эту проблему.

2

У меня такая же проблема, я думаю, это из Instagram я сообщил о проблеме с моей клиентской панели в разработчике> управлять клиентами> Сообщить о проблеме. Вы можете решить эту проблему как можно скорее.

-1

Это связано с ограничениями безопасности на вашем приложении Instagram. Вы можете разрешить его, сняв флажок «Отключить неявный OAuth» для вашего приложения Instagram на вкладке «Безопасность».

+0

Это не работа для меня. Отключить неявный OAuth никогда не проверялся, но спасибо за ваше предложение. – dsum27

+0

Это может быть правдой в некоторых случаях, но я думаю, что @raRaRa находится на правильном пути, описывая сыпь недавних инцидентов, которые возникли спонтанно. – robbpriestley

1

Существует определенная проблема с потоком Instagram OAuth. Похоже, что возвращаемый код авторизации работает по какой-то причине, это, скорее всего, проблема, связанная с сетью, которую они должны исправить с их конца.

Моя теория заключается в том, что сгенерированный код авторизации не распространяется на все серверы API Instagram, и если вы попали в плохой узел, вам не повезло.

Однако я недавно нашел решение, которое не зависит от кода авторизации. Если вы используете аутентификацию на стороне клиента, вы сможете получить токен доступа, не используя код авторизации. Он менее безопасен, но отлично работает как временное исправление.

Вы просто меняете response_type=code на response_type=token. Тип маркера ответ перенаправит пользователя на ваш сайт, используя этот URL структуру:

http://your-redirect-uri#access_token=ACCESS-TOKEN 

Я рекомендую извлечения маркера доступа из URL на стороне клиента с помощью JavaScript, а затем передать его в конечную точку на своем сайте. Например. /callback?accesstoken={accessToken}. Это необходимо, потому что содержимое хэша не передается серверу.

Пример:

<script> 
    if (window.location.hash && window.location.hash.indexOf('#access_token=') !== -1) { 
     var accessToken = window.location.hash.replace('#access_token=', ''); 
     window.location.href = '/callback?accesstoken=' + accessToken; 
    } 
</script> 

Выше фрагмент кода копируется и слегка модифицированный из раствора при https://news.ycombinator.com/item?id=13178789

Вы можете прочитать больше о Instagram стороне клиента аутентификации на https://www.instagram.com/developer/authentication/ под Client-Side (Implicit) Authentication

+0

Что я вижу из своего собственного приложения, так это то, что проблема, начавшаяся самопроизвольно пару недель назад, кажется, проясняется.Я предполагаю, что Instagram исправляет проблему, хотя они никогда не отвечали на мой билет поддержки. – robbpriestley

+0

Да, похоже, они исправили это на их конце. Я буду поддерживать оба способа, поэтому, если первый из них не удастся при использовании кода авторизации, я повторю попытку с помощью токена response_type. – raRaRa

+0

В дополнение к информативной теме YCombinator, упомянутой выше, есть интересная история от разработчика, который обнаружил больше информации о новом перенаправлении с api.instagram.com на www.instagram.com и о том, как токен становился «поврежденным» во время обработать. Но, как уже отмечалось, проблема, похоже, решена без меня, чтобы изменить код. Однако интересно видеть дополнительную информацию. https://auth0.com/forum/t/suggested-fix-for-instagram-integration-oauthexception/4664/6 – robbpriestley