Sử dụng API Java của Google Class room trong Máy chủ Tomcat làm API nghỉ

Aug 17 2020

Tôi muốn sử dụng API Java của Google Classroom trong Máy chủ Tomcat làm API REST.

  1. Tôi muốn mã phía máy khách tạo mã thông báo truy cập và làm mới mã thông báo và chuyển chúng đến các điểm cuối API REST.
  2. Sau đó, API REST sử dụng mã thông báo trên để gọi mã sau để nhận danh sách các Khóa học: objectOf(Classroom).courses().list().setPageSize(100).execute();

Tôi đang tạo Lớp học như sau, nơi .getCredentials()sử dụng GoogleAuthorizationCodeFlow.Builderđể tạo thông tin xác thực cần thiết, nhưng nó sẽ mở ra một cửa sổ trình duyệt để cho phép người dùng và lấy mã thông báo. Điều này không hiệu quả với tôi.

NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    Classroom classRoom = new Classroom.Builder(httpTransport, JSON_FACTORY, getCredentials(httpTransport))
            .setApplicationName(APPLICATION_NAME).build();

Trả lời

Jacques-GuzelHeron Aug 18 2020 at 09:39

Tôi hiểu rằng bạn muốn nhận được quyền truy cập và làm mới mã thông báo để sau này sử dụng chúng trong Lớp học; và bạn muốn chạy hoạt động này từ một máy chủ. Nếu điều đó là chính xác, bạn sẽ cần phải đăng nhập bằng tài khoản của mình để chứng minh danh tính và nhận thông tin đăng nhập, nhưng có một số lựa chọn thay thế.

Vì bạn sẽ thực thi mã từ máy chủ, bạn có thể làm theo các bước sau để tạo thông tin đăng nhập của mình. Những thông tin đăng nhập đó cần được lưu trong thư mục công việc của bạn một lần và chúng có thể được đọc trong mọi lần chạy.

Ngoài ra, bạn có thể tạo tài khoản dịch vụ và sử dụng tài khoản đó để đạt được mục tiêu của mình nếu bạn muốn tương tác với Lớp học với tư cách là một người dùng khác trong tổ chức của mình. Hãy nhớ kích hoạt ủy quyền trên toàn miền cho bước này. Đừng ngần ngại viết lại nếu bạn có một số câu hỏi.