0

我正在尝试为我正在构建的应用程序调用 Google Tasks API。当我使用 Google 的客户端库进行调用时,它会成功并返回预期的内容。

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 做同样的事情时,我得到 404 并在响应正文中显示文本“Login Requied”。

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);
    }
});

}

有人可以告诉我我做错了什么吗?

4

1 回答 1

1

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

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

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

于 2017-07-22T05:51:35.990 回答