ユーザーが Classroom と Google Meet を使用している場合は、Google Meet コースの生徒の出席状況を確認する Apps Script クイックスタートをご覧ください。

Ruby クイックスタート

このページの残りの手順を完了して、シンプルな Ruby コマンドライン アプリケーションを作成します。このアプリケーションは、Classroom API に対してリクエストを行います。

Prerequisites

このクイックスタートを実行するには、次の前提条件が必要です。

  • デスクトップ アプリケーションの認証情報。デスクトップ アプリケーションの認証情報を作成する方法については、認証情報を作成するをご覧ください。

  • Google Classroom が有効になっている G Suite for Education アカウント。

ステップ 1: Google クライアント ライブラリをインストールする

次のコマンドを実行してライブラリをインストールします。

gem install google-api-client

代替インストール オプションについては、ライブラリのインストール ページをご覧ください。

ステップ 2: サンプルを設定する

作業ディレクトリに quickstart.rb という名前のファイルを作成し、次のコードをコピーします。

classroom/quickstart/quickstart.rb
require "google/apis/classroom_v1"
require "googleauth"
require "googleauth/stores/file_token_store"
require "fileutils"

OOB_URI = "urn:ietf:wg:oauth:2.0:oob".freeze
APPLICATION_NAME = "Classroom API Ruby Quickstart".freeze
CREDENTIALS_PATH = "credentials.json".freeze
# The file token.yaml stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
TOKEN_PATH = "token.yaml".freeze
SCOPE = Google::Apis::ClassroomV1::AUTH_CLASSROOM_COURSES_READONLY

##
# Ensure valid credentials, either by restoring from the saved credentials
# files or intitiating an OAuth2 authorization. If authorization is required,
# the user's default browser will be launched to approve the request.
#
# @return [Google::Auth::UserRefreshCredentials] OAuth2 credentials
def authorize
  client_id = Google::Auth::ClientId.from_file CREDENTIALS_PATH
  token_store = Google::Auth::Stores::FileTokenStore.new file: TOKEN_PATH
  authorizer = Google::Auth::UserAuthorizer.new client_id, SCOPE, token_store
  user_id = "default"
  credentials = authorizer.get_credentials user_id
  if credentials.nil?
    url = authorizer.get_authorization_url base_url: OOB_URI
    puts "Open the following URL in the browser and enter the " \
         "resulting code after authorization:\n" + url
    code = gets
    credentials = authorizer.get_and_store_credentials_from_code(
      user_id: user_id, code: code, base_url: OOB_URI
    )
  end
  credentials
end

# Initialize the API
service = Google::Apis::ClassroomV1::ClassroomService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = authorize

# List the first 10 courses the user has access to.
response = service.list_courses page_size: 10

puts "Courses:"
puts "No courses found" if response.courses.empty?
response.courses.each do |course|
  puts "- #{course.name} (#{course.id})"
end

ステップ 3: サンプルを実行する

次のコマンドを使用してサンプルを実行します。

ruby quickstart.rb

サンプルを初めて実行するときに、アクセスを承認するよう求められます。

  1. このサンプルでは、デフォルトのブラウザで新しいウィンドウまたはタブを開いてみましょう。このコマンドが失敗した場合は、コンソールから URL をコピーし、ブラウザで手動で開きます。

    Google アカウントにまだログインしていない場合は、ログインを求められます。複数の Google アカウントにログインしている場合、承認に使用するアカウントを 1 つ選択するよう求められます。

  2. [Accept] ボタンをクリックします。
  3. サンプルが自動的に進むので、ウィンドウまたはタブを閉じます。

備考

  • 認可情報はファイル システムに保存されるため、それ以降の実行で承認を求めるプロンプトは表示されません。
  • この例の認証フローは、コマンドライン アプリケーション向けに設計されています。ウェブ アプリケーションで認可を行う方法については、ウェブサーバー アプリケーションでの OAuth 2.0 の使用をご覧ください。

トラブルシューティング

このセクションでは、このクイックスタートを行おうとする際に発生する可能性のある一般的な問題と、考えられる解決策について説明します。

This app isn't verified

OAuth 同意画面に「このアプリは未確認」という警告が表示された場合、アプリは機密性の高いユーザーデータへのアクセスを提供するスコープをリクエストしています。アプリケーションでプライベート スコープを使用する場合、その警告やその他の制限を取り除くため、アプリは検証プロセスを受ける必要があります。開発フェーズでは、[Advanced > Go to {Project Name}(unsafe)] を選択することで、この警告を超過することがあります。

File not found error for credentials.json

サンプルを実行すると、ファイルが見つからなかったり、credentials.json に関するファイルエラーが表示されなかったりすることがあります。

このエラーは、前述の前提条件で詳述するように、デスクトップ アプリケーションの認証情報を承認していない場合に発生します。デスクトップ アプリケーションの認証情報を作成する方法については、認証情報を作成するをご覧ください。

認証情報を作成したら、ダウンロードした JSON ファイルが credentials.json として保存されていることを確認します。次に、残りのサンプルコードを使用して、ファイルを作業ディレクトリに移動します。

関連情報

このクイックスタートで使用する API の詳細については、GitHub の google-api-ruyby-client セクションをご覧ください。