javascript - 使用 Javascript 通过 Google 客户端库进行批量请求

标签 javascript google-api google-api-client google-classroom

我正在尝试使用 Google 的客户端库 API 请求多个记录。 我正在尝试获取与单个谷歌类(class)相关的学生列表和单独的作业列表。我正在使用 Google Classroom API ( https://developers.google.com/classroom/reference/rest/ )。

这是我到目前为止所得到的:

    let batch = gapi.client.newBatch();

    let courseWorkRequest = function(courseId) {
        return gapi.client.request({
            'path': `/v1/courses/${courseId}/courseWork`,
        });
    };

    let studentRequest = function (courseId) {
        return gapi.client.request({
            'path': `/v1/courses/${courseId}/students`
        });
    };

    listOfGoogleClasses.forEach(function (course) {
        let courseAssignments = courseWorkRequest(course.id);
        batch.add(courseAssignments);
        let courseStudents = studentRequest(course.id);
        batch.add(courseStudents)
    });

    batch.then(function(response){
        console.log(response);
    });

请求有效,但对于响应,我只是得到一系列如下所示的对象:

  body:"Not Found"
  headers:Object
  result:false
  status:404
  statusText: "Not Found"

最佳答案

从错误本身推断,这意味着您缺少请求正文的一些必需属性,例如 Content-Type、Content-Length 等。示例可以在 Example batch request 中查看。

POST https://classroom.googleapis.com/batch HTTP/1.1
Authorization: Bearer your_auth_token
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length

--batch_foobarbaz
Content-Type: application/http
Content-Transfer-Encoding: binary
MIME-Version: 1.0
Content-ID: <item1:12930812@classroom.example.com>

PATCH /v1/courses/134529639?updateMask=name HTTP/1.1
Content-Type: application/json; charset=UTF-8
Authorization: Bearer your_auth_token

{
  "name": "Course 1"
}
--batch_foobarbaz
Content-Type: application/http
Content-Transfer-Encoding: binary
MIME-Version: 1.0
Content-ID: <item2:12930812@classroom.example.com>

PATCH /v1/courses/134529901?updateMask=section HTTP/1.1
Content-Type: application/json; charset=UTF-8
Authorization: Bearer your_auth_token
{
  "section": "Section 2"
}

关于javascript - 使用 Javascript 通过 Google 客户端库进行批量请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43481382/

相关文章:

javascript - 将 Unix 时间戳转换为可读格式,在 JavaScript 代码中不起作用

javascript - 如何检查来自 HTTP 调用的响应状态

javascript - 如何在 Javascript 中编写 Pascal 三 Angular 形 - 混淆数组

javascript - 将 CouchDB javascript View 转换为 erlang

google-analytics - 新帐户上的 Google API(分析)访问 token 和刷新 token 错误

java - 如何在android Activity 中获取设备的电话号码

node.js - 如何使用 node google client api 获取具有已获取 token 的用户配置文件?

google-api - 无法删除 OAuth 同意屏幕

php - 如何知道访问 token 是否在 Google Api PHP 中过期

javascript - 重复规则错误 400 错误请求 - Google Api 日历