Я делаю запросы против API Instagram из мобильного приложения. В настоящее время я просто направляю пользователя к URL-адресу Instagram auth и указывая тип ответа как "access_token". Указание этого параметра response_type называется неявным auth.
Явный auth: response_type = code Неявный auth: response_type = access_token
Я пытаюсь обойтись, чтобы встать на веб-службу, чтобы облегчить явное авторизацию. Это необходимо, потому что в явном потоке auth API Instagram необходимо сделать вызов URL-адреса переадресации и передать параметр "код". Затем код будет использоваться моим кодом на стороне сервера, чтобы сделать окончательный запрос к Instagram для токена доступа.
Для мобильного приложения гораздо эффективнее использовать неявный поток, потому что для его обработки не требуется поддерживать дополнительную конфиденциальную службу auth.
Instagram поддерживает следующие области:
- basic - читать любые и все данные, относящиеся к пользователю (например, следующие/последующие списки, фотографии и т.д.) (предоставляется по умолчанию)
- comments - для создания или удаления комментариев от имени пользователя
- отношения - следить и отменить подписку на пользователей от имени
- нравится - нравится и не похоже на элементам от имени пользователя
Когда я делаю какой-либо другой тип спецификации области помимо "базового", я получаю следующий ответ, когда пользователь предоставляет учетные данные в URL-адресе auth:
{"code": 400, "error_type": "OAuthException", "error_message": "Invalid scope field(s): basic+likes"}
Любая комбинация областей, отличных от "базовых", дает тот же ответ.
Итак, мой вопрос таков:
- Требуется явное указание auth, чтобы указать области действия за пределами "basic"
- Нужно ли указывать код response_type = для расширенных областей действия?
- Является ли это ограничением Instagram, или это ограничение OAuth 2.0?
Спасибо заранее.