LoginSignup
1
1

[Google Drive API v3] Javaでファイルのコメントの返信(リプライ)を追加・変更・削除する

Posted at

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのコメントのリプライを追加・変更・削除する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Drive API v3] JavaでDrive APIを使う
を参照ください。

No 目次
1 リプライを追加
1 スコープ
2 実行
3 レスポンスの内容
2 リプライを変更
1 スコープ
2 実行
3 レスポンスの内容
3 リプライを削除
1 スコープ
2 実行
3 レスポンスの内容

1. リプライを追加

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_FILE

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

1.2. 実行

リプライを追加したいファイルIDとコメントID、コメントの内容を指定します。

setFieldsでレンスポンスで取得したいフィールド(Reply)を指定します。
指定しないとエラーになります。
ここでは「*」(全て取得)を指定しています。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Replies replies = drive.replies();
	    
    Reply reply = new Reply();
    reply.setContent("返信コメント");
    Drive.Replies.Create create = replies.create("ファイルID", "コメントID", reply);
    create.setFields("*");
    
    Reply res = create.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments/{コメントID}/replies
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

Replyのsetメソッドにより、リクエストボディを設定できます。

メソッド 引数 説明
setAction String 返信が親コメントに対して実行したアクション
resolve:解決、reopen:未解決
setContent String 返信のプレーンテキスト

1.3. レスポンスの内容

Reply

フィールド メソッド 戻り値 説明
id getId String リプライID
kind getKind String リソースの種類
固定文字列:"drive#reply"
createdTime getCreatedTime String 応答が作成された時刻
modifiedTime getModifiedTime String 応答が最後に変更された時刻
action getAction String 返信が親コメントに対して実行したアクション
resolve、reopen
author getAuthor User 返信の作成者
deleted getDeleted Boolean 返信が削除されたか
htmlContent getHtmlContent String HTML形式での返信の内容
content getContent String 返信のプレーンテキストの内容

User

メソッド 戻り値 説明
getDisplayName String 表示名
getEmailAddress String ユーザーの電子メールアドレス
getKind String リソースの種類
固定文字列:"drive#user"
getMe Boolean このユーザーが要求ユーザーであるか
getPermissionId String 権限リソースに表示されるユーザーID
getPhotoLink String 利用可能な場合、ユーザーのプロフィール写真へのリンク

2. リプライを変更

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_FILE

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

2.2. 実行

変更したいリプライがあるファイルのIDとコメントID、リプライID、
コメントの内容を指定します。

リプライIDが自身のリプライではない場合は更新されません。
(例外、エラーも表示されません)

setFieldsで取得したいフィールド(Reply)を指定します。
指定しないとエラーになります。
ここでは「*」(全て取得)を指定しています。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Replies replies = drive.replies();
	    
    Reply reply = new Reply();
    reply.setContent("返信コメント");
    Drive.Replies.Update update = replies.update("ファイルID", "コメントID", "リプライID",reply);
    update.setFields("*");
    
    Reply res = update.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

PATCH: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments/{コメントID}/replies/{リプライID}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.2.3. リクエストボディ

Replyのsetメソッドにより、リクエストボディを設定できます。

1.2.3. リクエストボディと同じです。

2.3. レスポンスの内容

Reply

1.3. レスポンスの内容と同じです。

3. リプライを削除

3.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_FILE

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

3.2. 実行

削除したいリプライがあるファイルのIDとコメントIDを指定します。

リプライIDが自身のリプライではない場合は削除されません。
削除に失敗した場合のみ例外を出力します。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Replies replies = drive.replies();
	    
    Drive.Replies.Delete delete = replies.delete("ファイルID", "コメントID", "リプライID");
    delete.execute();
}

3.2.1. HTTPリクエスト

DELETE: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments/{コメントID}/replies/{リプライID}
が実行されます。

3.2.2. クエリパラメータ

クエリパラメータはありません。

3.2.3. リクエストボディ

リクエストボディはありません。

3.3. レスポンスの内容

成功した場合は何も返しません。
失敗した場合は例外を出力します。



おしまい。。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1