如何从 javascript 调用 Google 任务 API?

How to call Google Tasks API from javascript?

我正在尝试为我 building.When 的应用程序调用 Google 任务 API 我使用 Google 的客户端库进行调用,它成功并且 return 预期的结果。

function getAllTasks() {
gapi.client.tasks.tasks.list({
    tasklist: 'MDIxODc1MzEwNzc4MzMxNDU2MTU6MDow'
}).then(function (response) {
    console.log(response);
    var arr = response.result.items;
    console.log(arr);
    for(var j=0;j<arr.length;j++){
        console.log(arr[j].title);
    }
})
}

但是当我使用 jQuery 执行相同操作时,我会在响应正文中收到带有文本 "Login Requied" 的 404。

function getAllTasksJquery() {
$.get("https://content.googleapis.com/tasks/v1/lists/MDIxODc1MzEwNzc4MzMxNDU2MTU6MDow/tasks",function (data,status) {
    console.log(data,status);
    var arr = data.result.items;
    console.log(arr);
    for(var j=0;j<arr.length;j++) {
        console.log(arr[j].title);
    }
});

}

谁能告诉我我做错了什么?

经过几个小时的搜索,我终于弄明白了。因为我使用的是 Google 的 JS 客户端库,所以我几乎忽略了每次 API 调用都必须传递我的 oauth2 access_token 的事实。只有这样 API 才会知道要访问的帐户。 更具体地说,在发出 API 请求时在 header 中传递 access_token。这是相同的 jQuery 片段:

$.get(`https://www.googleapis.com/tasks/v1/users/@me/lists`,{access_token: AccessToken}, function (data,status) {
    console.log(status,data);
});

希望对其他人有所帮助...