python request.get 尝试获取 Instagram 访问代码时出现问题

problem with python request.get when trying to get instagramm access code

我在尝试使用 request.get() 方法构造 url 来处理 instagramm oauth

时遇到问题

这就是我正在做的事情:

def get_code(uri, id):
    params = {
    'client_id': id
    ,'redirect_uri': uri
    ,'scope': 'user_profile,user_media'
    ,'response_type': 'code'
    }
    r = requests.get('https://www.instagram.com/oauth/authorize/'
    ,params = params)
    input(r.url)

并且在使用此类参数调用函数时

get_code('https://6b4c-46-39-51-57.ngrok.io/autos/', 96597520768760)

打印时我期待这样 url r.url:

https://www.instagram.com/oauth/authorize?client_id=965975207687609&redirect_uri=https://6b4c-46-39-51-57.ngrok.io/autos/&scope=user_profile,user_media&response_type=code

但看看我得到的是什么:

https://www.instagram.com/accounts/login/?force_authentication=1&enable_fb_login=1&next=/oauth/authorize/%3Fclient_id%3D96597520768760%26redirect_uri%3Dhttps%3A//6b4c-46-39-51-57.ngrok.io/autos/%26scope%3Duser_profile%2Cuser_media%26response_type%3Dcode

有人知道为什么 request.get().ull returns 我不是我试图构建的 url 吗?

尝试在浏览器的隐私模式下访问第一个 link,您会注意到您将被重定向到第二个 link,因为您没有登录,也无权访问资源询问。

所以请求,实际上是向第一个 link 发送一个获取请求,但请求被重定向到第二个 link。