如何通过V3 REST API使用批量请求获取/添加/更新Google Calendar事件?我试过但不行。根据文档(https://developers.google.com/google-apps/calendar/batch),应该可以通过向API发布多部分/混合内容类型消息来发送批处理请求。工作HTTP POST的一个例子很棒。
谢谢, Riyaz
答案 0 :(得分:1)
以下批处理请求获取eventId1,更新eventId2并在使用calendarId标识的日历下创建新事件。
POST /batch HTTP/1.1
Authorization: /*Auth token*/
Host: host
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length
--batch_foobarbaz
Content-Type: application/http
Content-ID: <item1:x@barnyard.example.com>
GET /calendar/v3/calendars/calendarId/events/eventId1
--batch_foobarbaz
Content-Type: application/http
Content-ID: <item2:x@barnyard.example.com>
PUT /calendar/v3/calendars/calendarId/events/eventId2
Content-Type: application/json
Content-Length: part_content_length
{{ body }}
--batch_foobarbaz
Content-Type: application/http
Content-ID: <item3:x@barnyard.example.com>
POST /calendar/v3/calendars/calendarId/events
Content-Type: application/json
Content-Length: part_content_length
{{ body }}
--batch_foobarbaz--
答案 1 :(得分:1)
我发现外部 URL 必须是 "https://www.googleapis.com/batch/calendar/v3/" 并且边界 url 必须是 "/calendar/v3/calendars/{calendarID}/events"
完整的 HTTP 请求如下所示:
$(function() {
$("#bank_name").autocomplete({
source: function (request, response) {
$.getJSON("{{url_for('autocomplete_banks')}}", {
q: request.term,
}, function (data) {
response(data.matching_results); // matching_results from jsonify
});
},
minLength: 2,
select: function (event, ui) {
console.log(ui.item.value);
$.ajax({
data: {
bank_name: ui.item.value
},
type: 'POST',
url: '/process_banks'
})
.done(function (data) {
if (data.bank_name) {
$('#swift_new').val(data.swift);
}
})
},
})
答案 2 :(得分:0)
端点是
https://www.googleapis.com/batch
当我执行日历批处理请求时,这适用于我。我遇到的一个问题是我的最后一个边界令牌,我之后没有--
。因此,每个令牌都以--
开头,最后一个令牌最后有--
。正如@Burcu Dogan的例子所示。