API Instagram: принудительное приглашение во время аутентификации

Есть ли способ для аутентификации instagram (login) всегда запрашивать аутентификацию? Это пропускается, когда пользователь вошел в систему и уже разрешил приложение.

Это будет что-то вроде twitter use_authorize=true или google approval_prompt=force.

Ответ 1

Я считаю, что самый простой способ - использовать следующий url:

https://instagram.com/accounts/logoutin/?force_classic_login=&next=URLENCODED_INSTAGRAM_OAUTH_URI_PATH_WITH_YOUR_DATA

Например:

window.location.assign('https://instagram.com/accounts/logoutin/?force_classic_login=&next=' + encodeURIComponent('/oauth/authorize/?response_type=code&scope=public_content+follower_list+comments&client_id='+ YOUR_IG_CLIENT_ID + '&redirect_uri='+encodeURIComponent(YOUR_REDIRECT_URI)));

Обратите внимание, что ваш URL-адрес перенаправления должен быть дважды закодирован

Ответ 2

Мне удалось заставить его работать:

Я пытаюсь загрузить изображение с URL-адресом страницы выхода instagram, прежде чем открывать всплывающее окно авторизации.
Что-то вроде этого (coffeescript):

windowOpen = ->
    window.open("/instagram/authorize?...")

if forceLogin
    tryLogout().always ->
        windowOpen()

И функция tryLogout (setTimeout 10seconds как резерв)

tryLogout: ->
    deferred = $.Deferred()
    logOutImg = new Image()

    logOutImg.onerror = ->
        deferred.resolve()
    logOutImg.onload = ->
        deferred.resolve()

    logOutImg.src = 'https://instagram.com/accounts/logout/'

    setTimeout(->
        deferred.reject()
    , 10000)

    return deferred.promise()

Ответ 3

Вот решение: вы должны удалить cookie Instagram с именем sessionid из своего браузера, чтобы Instagram больше не узнавал вас

Решение для Android находится здесь: fooobar.com/info/450315/...