Google 课堂 API - 如何在检索课程列表时格式化 setFields 参数

Google Classroom API - How to format the setFields parameter when retrieving the course list

我正在使用 Java 和 Android 检索 Google 课堂课程列表。 这是进行调用的代码。它工作正常。

ListCoursesResponse coursesResponse1 = mService.courses().list()
                        .setPageSize(30)
                        .setTeacherId("me")
                        .execute();

但是教室 API 相当滞后,所以我只想指定每门课程所需的参数,即课程名称和 ID。我希望这会加快响应时间。有一个可以使用的 setFields 参数,但是当我这样做时,响应失败 "Request contains an invalid argument."

这是我使用的代码

ListCoursesResponse coursesResponse1 = mService.courses().list()
            .setPageSize(30)
            .setTeacherId("me")
            .setFields("name,id")
            .execute();

我确定问题出在 setFields 字符串上。它很可能格式不正确,但我找不到任何关于如何格式化 setFields 字符串的文档。

@Satheeshkumar 的回答不正确。

支持setFields方法并正常工作。您可以在 documentation for the API client.

上找到它

此外,查看 documentation page 上的 API 资源管理器,您可以看到有一个 "Show standard parameters" 按钮。

点击后你会看到fields参数。

此参数的工作方式是过滤输出,语法取决于结果的结构。通过查看 response body,您可以看到响应如下所示:

{
    "courses": [
        {
            {
                "id": string,
                "name": string,
                "section": string,
                "descriptionHeading": string,
                "description": string,
                "room": string,
                "ownerId": string,
                "creationTime": string,
                "updateTime": string,
                "enrollmentCode": string,
                "courseState": enum (CourseState),
                "alternateLink": string,
                "teacherGroupEmail": string,
                "courseGroupEmail": string,
                "teacherFolder": {
    object (DriveFolder)
                },
                "courseMaterialSets": [
                    {
      object (CourseMaterialSet)
                    }
                ],
                "guardiansEnabled": boolean,
                "calendarId": string
            }
        }
    ],
    "nextPageToken": string
}

因此,如果您只需要 nameid 字段,您的 fields 查询应该是 "courses(id,name)".