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
To nie robi Pracuj dla mnie. Wyłączenie niejawnej OAuth nigdy nie zostało sprawdzone, ale dziękuję za sugestię. – dsum27
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