2016-12-18 15 views
8

Widzę ten błąd z mojego serwera na żywo przy użyciu interfejsu API Instagrama.Kod dopasowania interfejsu API Instagrama nie został znaleziony lub był już używany

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

Przeczytałem kilka sugestii tutaj, aby wyczyścić pamięć podręczną, ale to nie rozwiązuje problemu. Nie mogę również przesłać biletu wsparcia bezpośrednio na stronę Instagram, ponieważ otrzymuję komunikat o błędzie podczas próby wysłania biletu.

Odpowiedz

5

Istnieje kilka programistów narzekających na ten sam problem pod numerem https://news.ycombinator.com/item?id=13178789. Nie sądzę, że odznaczenie "Wyłącz niejawną autoryzację OAuth" rozwiązuje problem, ponieważ już to wypróbowałem i nie zadziałało.

Najlepszą rzeczą, jaką możesz zrobić, to przesłać raport do Instagrama za pomocą identyfikatora klienta, aby wywierać presję na swoją stronę, aby rozwiązać ten problem.

2

Mam ten sam problem, domyślam się, że to na Instagramie zgłosiłem problem z mojego panelu klienta w programie developer> zarządzaj klientami> Zgłoś problem. Możesz to zrobić, aby rozwiązać ten problem tak szybko, jak to możliwe.

-1

Wynika to z ograniczeń bezpieczeństwa na Twojej aplikacji Instagram. Możesz zezwolić na to, odznaczając "Wyłącz" niejawne OAuth "dla swojej aplikacji Instagram, na karcie Zabezpieczenia.

+0

To nie robi Pracuj dla mnie. Wyłączenie niejawnej OAuth nigdy nie zostało sprawdzone, ale dziękuję za sugestię. – dsum27

+0

Może to być prawdą w niektórych przypadkach, ale uważam, że @raRaRa jest na dobrej drodze, opisując wysypkę niedawnych incydentów, które spontanicznie wystąpiły. – robbpriestley

1

Istnieje na pewno problem z przepływem OAuth na Instagramie. Zwrócony kod autoryzacji prawdopodobnie nie działa z jakiegoś powodu, jest to bardzo prawdopodobne, że problem związany z siecią musi zostać naprawiony.

Moja teoria jest taka, że ​​wygenerowany kod autoryzacji nie jest dystrybuowany do wszystkich serwerów Instagram API, a jeśli trafisz na zły węzeł, oznacza to, że masz pecha.

Jednak niedawno znalazłem rozwiązanie, które nie zależy od kodu autoryzacji. Jeśli używasz uwierzytelniania po stronie klienta, będziesz w stanie odzyskać token dostępu bez użycia kodu autoryzacji. Jest mniej bezpieczny, ale działa świetnie jako tymczasowa poprawka.

Po prostu zmień response_type=code na response_type=token. Token typ odpowiedź przekieruje użytkownika do Twojej witryny za pomocą tej struktury URL:

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

Polecam pobieranie tokenu dostępu z adresu URL po stronie klienta przy użyciu JavaScript, a następnie przekazanie go do punktu końcowego na swojej stronie. Na przykład. /callback?accesstoken={accessToken}. Jest to wymagane, ponieważ zawartość w haszdzie nie jest przekazywana do serwera.

Przykład:

<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> 

Fragment kodu powyżej jest kopiowany i lekko zmodyfikowany z roztworu w https://news.ycombinator.com/item?id=13178789

można przeczytać więcej o Instagram po stronie klienta uwierzytelniania na https://www.instagram.com/developer/authentication/ pod Client-Side (Implicit) Authentication

+0

To, co widzę z mojej własnej aplikacji, to fakt, że problem, który zaczął się spontanicznie kilka tygodni temu, wydaje się być wyjaśnieniem.Zakładam, że Instagram naprawiał problem, chociaż nigdy nie odpowiedział na mój bilet wsparcia. – robbpriestley

+0

Tak, wygląda na to, że naprawili to po ich zakończeniu. Mam zamiar obsługiwać oba sposoby, więc jeśli pierwszy z nich nie powiedzie się podczas używania kodu autoryzacji, spróbuję ponownie użyć tokenu response_type. – raRaRa

+0

Oprócz wspomnianego powyżej informacyjnego wątku YCombinator, istnieje interesująca historia od programisty, który odkrył więcej informacji o nowym przekierowaniu z api.instagram.com na www.instagram.com oraz o tym, jak token został "uszkodzony" podczas proces. Ale, jak już wspomniano, problem wydaje się być rozwiązany bez potrzeby zmiany mojego kodu. Interesujące jest jednak zobaczyć dodatkowe informacje. https://auth0.com/forum/t/suggested-fix-for-instagram-integration-oauthexception/4664/6 – robbpriestley

Powiązane problemy