如何在flask-dance上发送带有json数据的发布请求?

时间:2019-04-02 10:28:17

标签: flask google-api google-calendar-api flask-dance

我正在尝试将POST请求发送到我的烧瓶舞蹈扩展程序上的Google日历的忙碌service。但是我收到“ 405方法不允许”错误。我不知道如何调试它。

我必须在请求正文中传递JSON数据。我已转介要求documentation 。我是烧瓶和烧瓶舞蹈的新手,将不胜感激。

@app.route("/",methods=['POST'])
def free():
    if not google.authorized:
        return redirect(url_for("google.login"))
    event = json.dumps({"timeMin": "2019-03-31T00:00:00Z",
             "timeMax": "2019-04-01T00:00:00Z",
             "timeZone": " Asia/Calcutta",
             "groupExpansionMax": 3,
             "calendarExpansionMax": 1,
             "items": [
                 {
                     "id": "abcd@gmail.com"
                 }
             ]
            })
    resp = google.post(url="https://www.googleapis.com/calendar/v3/freeBusy",data=event)
    return resp.json()

响应应该是json数据

  "timeMax": "2019-04-01T00:00:00.000Z", 
  "kind": "calendar#freeBusy", 
  "calendars": {
    "abcd@gmail.com": {
      "busy": [
        {
          "start": "2019-03-31T03:00:00Z", 
          "end": "2019-03-31T09:00:00Z"
        }
      ]
    }
  }, 
  "timeMin": "2019-03-31T00:00:00.000Z"
}```

1 个答案:

答案 0 :(得分:1)

在POST中添加了GET,现在代码似乎可以工作了


@app.route("/",methods=['GET','POST'])
def free():
    if not google.authorized:
        return redirect(url_for("google.login"))
    event = {"timeMin": "2019-03-31T00:00:00Z",
             "timeMax": "2019-04-01T00:00:00Z",
             "timeZone": " Asia/Calcutta",
             "groupExpansionMax": 3,
             "calendarExpansionMax": 1,
             "items": [
                 {
                     "id": "abcd@gmail.com"
                 }
             ]
            }