При использовании Android с Chrome, Windows с Chrome, Macbook с Safari все работает нормально. Проблема только в iPhone.
Обычно я получаю ответ вроде:
http://redirecturl.com/#access_token=ACCESS_TOKEN
С iPhone я получаю только:
Мне нужно получить доступ к значению # с помощью javascript, поэтому я использую:
location.hash
Я также попробовал следующее, чтобы получить полный адрес:
location.href
Но никто не получает мне хэш-значения, предоставленные Instagram.
Либо Instagram не отвечает с помощью #access_token, либо "умный" iPhone взбивает все, получая ответ.
Есть два способа получить один: серверный или клиентский. Второй вариант (называемый неявной аутентификацией) может использоваться только тогда, когда неявный OAuth включен в настройках клиента
(Управление клиентами> Изменить клиент> Безопасность> Отключить неявный OAuth).
По умолчанию он отключен.
В любом случае вам необходимо перенаправить пользователя на URL авторизации, чтобы получить токен доступа. URL-адрес для явного режима: - Ссылка на API на стороне сервера
URL-адрес для неявного режима: - Интерфейс API на стороне клиента
После этого вы будете перенаправлены на REDIRECT-URI, которому будет передан аргумент. Для явного режима это будет строка запроса с кодом, в то время как для неявного режима вы получите токен доступа непосредственно к хэшу:
your-redirect-uri?code=CODE
your-redirect-uri#access_token=ACCESS-TOKEN
Для неявного режима вы можете получить токен доступа из window.location.hash
в Javascript.