知晓云开发api 如何用python进行oauth2 认证

发布于 2022-09-07 15:34:19 字数 1819 浏览 31 评论 0

希望用python requests操作知晓云的开放api,但是总是失败,求大神解惑。

这是他们的js示例:

https://doc.minapp.com/open-a...

  var request = require('request');

  // 获取 code
  var opt = {
    uri: 'https://cloud.minapp.com/api/oauth2/hydrogen/openapi/authorize/',
    method: 'POST',
    json: {
      client_id: 'a4d2d62965ddb57fa4xx',
      client_secret: 'e5802b40135baab9b4e84e35bed058a264c37dxx'
    },
    jar: true,                // 允许记住 cookie 
    followAllRedirects: true,     // 允许重定向
  }

  request(opt, function(err, res, body) {
      getToken(body.code)  // 回调调用 getToken 函数
  })

  // 获取 token
  function getToken(code) {
    var opt = {
      uri: 'https://cloud.minapp.com/api/oauth2/access_token/',
      method: 'POST',
      formData: {   // 指定 data 以 "Content-Type": "multipart/form-data" 传送
        client_id: 'a4d2d62965ddb57fa4xx',
        client_secret: 'e5802b40135baab9b4e84e35bed058a264c37dxx',
        grant_type: 'authorization_code',
        code,
      }
    }

    request(opt, function(err, res, body) {
      let token = JSON.parse(body).access_token
    })
  }

这是我的python代码:

import requests
import json

client_id = '谢谢谢谢'
client_secret = '非常感谢'
r = requests.post('https://cloud.minapp.com/api/oauth2/hydrogen/openapi/authorize/', json={"client_id": client_id, "client_secret": client_secret})
code = json.loads(r.content)["code"]
print code
#code可以正常获取

headers = {'Content-Type': 'multipart/form-data'}
payload = {"client_id":client_id,'client_secret':client_secret, 'grant_type' : 'authorization_code', 'code' : code}
r = requests.post("https://cloud.minapp.com/api/oauth2/access_token/", headers=headers, data=payload)
print r.content

不知道为啥总是返回400

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北风几吹夏 2022-09-14 15:34:20

400是客户端错误,bad request,估计和cookie有关。

×眷恋的温暖 2022-09-14 15:34:20

您好,您这个问题解决了嘛?我最近也想弄弄知晓云这个open api 没想到第一步就卡住了。。。。。求方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文