【问题标题】:Announce text to course through classroom api with java使用 java 通过课堂 api 向课程播报文本
【发布时间】:2021-11-08 21:26:16
【问题描述】:

我是 Google Classroom API 集成的新手,想通过课堂 API 在其中一门课程中发布文本,我完成了 Java 快速入门 here! 它适用于获取所有课程数据,现在我如何实现announcement() 方法为学生创建帖子

public static void main(String... args) throws IOException, GeneralSecurityException {
    // Build a new authorized API client service.
    final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
    Classroom service = new Classroom.Builder(HTTP_TRANSPORT, JSON_FACTORY, 
            getCredentials(HTTP_TRANSPORT)).setApplicationName(APPLICATION_NAME).build();
    ListCoursesResponse response = service.courses().list().setPageSize(10).execute();
    List<Course> courses = response.getCourses();
    if (courses == null || courses.size() == 0) {
        System.out.println("No courses found.");
    } else {
        System.out.println("Courses:");
        for (Course course : courses) {
            System.out.println(course.getName());

            //--  How do I create a new announcement?  I tried this getting error ------

            Classroom.Courses.Announcements.Create a = new Classroom.Courses
                            .Announcements.Create().setCourseId("423178037220");

            // -------------------------------
        }
    }
}

毕竟,我遇到了这个错误

com.google.api.services.classroom.Classroom.Courses.Announcements' is not an enclosing class

【问题讨论】:

  • 请编辑您的问题并添加错误信息
  • @tgdavies 我添加了一条错误消息,感谢您的建议。

标签: java google-classroom


【解决方案1】:

CreateAnnouncements 的内部类,即隐式包含对Announcements 实例的引用。

所以你不能创建Create 的实例,除非是在Announcements 实例的上下文中。

简单的例子见下面的代码:

class Sample {

    public static class Foo {
        // a non-static inner class
        public class Bar {}

        public Bar create() { return new Bar(); }
    }

    public static void main(String[] args) {
       Foo.Bar bar1 = new Foo.Bar(); // this line won't compile
       Foo.Bar bar2 = new Foo().create();
    }
}

您需要在Announcements 实例上调用create 方法来创建Create 实例。 (见https://developers.google.com/resources/api-libraries/documentation/classroom/v1/java/latest/com/google/api/services/classroom/Classroom.Courses.Announcements.html#create-java.lang.String-com.google.api.services.classroom.model.Announcement-

试试:

courses.announcements().create("423178037220", new Announcement())

我自己没有这样做,因为我没有设置 Google 课堂项目。

【讨论】:

  • 感谢及时回复,能否写个公告实例。
  • 感谢你在我的角落里,你太棒了!
  • 你成就了我的一天?@tgdavies
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多