如何正确格式化对Streamlabs API的Python POST请求中的数据?

时间:2019-02-06 20:14:32

标签: python django python-requests

我正在尝试将我们的应用程序连接到Streamlabs的API,以便我们可以发布捐赠警报。为此,我需要为要提醒其频道的用户获取访问令牌。这是正常的OAuth2。我们击中/ authorize端点并取回代码,然后可以使用它从/ token端点(https://dev.streamlabs.com/v1.0/reference#token-1)获取访问令牌。

但是,当我们发送针对令牌的POST请求时,会收到一条错误消息,说明该请求缺少“ grant_type”参数。

我们正在使用普通的请求库。我尝试将请求的格式更改为request.post。我尝试通过将数据包装在urlencode和json.dumps中来更改数据。仍然没有运气。

    streamlabs_client_id = config('STREAMLABS_CLIENT_ID')
    streamlabs_client_secret = config('STREAMLABS_CLIENT_SECRET')
    streamlabs_redirect_uri = config('STREAMLABS_REDIRECT_URI')
    grant_type = 'authorization_code'
    querydict = {
        "grant_type":"authorization_code",
        "client_id":streamlabs_client_id,
        "client_secret":streamlabs_client_secret,
        "redirect_uri":streamlabs_redirect_uri, 
        "code":code
    }
    url = "https://streamlabs.com/api/v1.0/token"
    streamlabs_response = requests.request("POST", url, data=querydict)

这是我每次回来的json:

  

{“错误”:“ invalid_request”,“错误说明”:“该请求缺少必需的参数,包含无效的参数值,包含一个以上的参数,或者格式错误。请检查\“ grant_type \”参数。”}

有什么想法我对数据做错了吗?

0 个答案:

没有答案