ドキュメント

このガイドでは、Google Docs API を構成する主なメソッド、ドキュメントへのアクセス方法、ドキュメント作成時のワークフローなどのコンセプトを紹介します。

API メソッド

documents リソースは、Docs API を呼び出すために使用するメソッドを提供します。次のメソッドを使用して、ドキュメント ドキュメントを作成、読み取り、更新できます。

  • documents.create メソッドを使用してドキュメントを作成します。
  • documents.get メソッドを使用して、指定したドキュメントのコンテンツを取得します。
  • documents.batchUpdate メソッドを使用して、指定したドキュメントに対して一連の更新をアトミックに実行します。

documents.get メソッドと documents.batchUpdate メソッドには、ターゲット ドキュメントを指定するパラメータとして documentId が必要です。documents.create メソッドは、作成されたドキュメントのインスタンスを返します。このインスタンスから documentId を読み取ることができます。Docs API のリクエストとレスポンス メソッドについて詳しくは、リクエストとレスポンスをご覧ください。

ドキュメント ID

documentId はドキュメントの一意の識別子であり、ドキュメントの URL から取得できます。文字、数字、特殊文字を含む特定の文字列です。ドキュメント名が変更されても、ドキュメント ID は不変です。

https://docs.google.com/document/d/DOCUMENT_ID/edit

次の正規表現を使用して、Google ドキュメントの URL から documentId を抽出できます。

/document/d/([a-zA-Z0-9-_]+)

Google Drive API に精通している場合、documentIdfiles リソースの id に対応しています。

Google ドライブのドキュメントの管理

ドキュメント ファイルは、クラウドベースのストレージ サービスである Google ドライブに保存されます。Docs API には独自のスタンドアロン メソッドがありますが、多くの場合、ユーザーのドキュメント ファイルを操作するために、Google Drive API のメソッドも使用する必要があります。たとえば、ドキュメント ファイルをコピーするには、Drive API の files.copy メソッドを使用します。詳細については、既存のドキュメントをコピーするをご覧ください。

デフォルトでは、Docs API を使用すると、新しいドキュメントがドライブ上のユーザーのルートフォルダに保存されます。ドライブフォルダにファイルを保存するには 複数のオプションがあります詳しくは、Google ドライブ フォルダを操作するをご覧ください。

ドキュメント ファイルを操作する

多くの場合、ユーザーのマイドライブからドキュメントを取得するには、まずドライブの files.list メソッドを使用してファイルの ID を取得する必要があります。パラメータなしでこのメソッドを呼び出すと、ユーザーのすべてのファイルとフォルダのリスト(ID を含む)が返されます。

ドキュメントの MIME タイプは、データのタイプと形式を示します。ドキュメントの MIME タイプ形式は application/vnd.google-apps.document です。MIME タイプの一覧については、Google Workspace と Google ドライブでサポートされている MIME タイプをご覧ください。

MIME タイプでマイドライブ内のドキュメント ファイルだけを検索するには、次のクエリ文字列フィルタを追加します。

q: mimeType = 'application/vnd.google-apps.document'

クエリ文字列フィルタの詳細については、ファイルとフォルダを検索するをご覧ください。

documentId がわかったら、documents.get メソッドを使用して、指定したドキュメントの完全なインスタンスを取得します。詳細については、リクエストとレスポンスをご覧ください。

Google Workspace ドキュメントのバイト コンテンツをエクスポートするには、エクスポートするファイルの documentId と正しいエクスポート MIME タイプを指定して、ドライブの files.export メソッドを使用します。詳細については、Google Workspace ドキュメントのコンテンツをエクスポートするをご覧ください。

Get メソッドと List メソッドを比較する

次の表に、ドライブとドキュメントのメソッドの違いと、それぞれのメソッドで返されるデータを示します。

演算子 説明 使用量
drive.files.get ファイルのメタデータを ID で取得します。files リソースのインスタンスを返します。 特定のファイルのメタデータを取得します。
drive.files.list ユーザーのファイルを取得します。ファイルのリストを返します。 変更する必要があるファイルが不明な場合は、ユーザー ファイルのリストを取得します。
docs.documents.get 指定したドキュメントの最新バージョン(すべての書式設定とテキストを含む)を取得します。documents リソースのインスタンスを返します。 特定のドキュメント ID のドキュメントを取得します。

ドキュメント作成ワークフロー

心配する既存のコンテンツがなく、ドキュメントの状態を変更できる共同編集者もいないため、新しいドキュメントを作成して入力するのは簡単です。概念的には、次のシーケンス図のように機能します。

新しいドキュメントを作成して
データを入力するワークフローです
図 1. 新しいドキュメントを作成してデータを入力するワークフロー。

図 1 では、documents リソースを操作しているユーザーに、次の情報フローがあります。

  1. アプリがウェブサーバーの documents.create メソッドを呼び出します。
  2. ウェブサーバーが、作成されたドキュメントのインスタンスを documents リソースとして含む HTTP レスポンスを送信します。
  3. 必要に応じて、アプリは documents.batchUpdate メソッドを呼び出して一連の編集リクエストをアトミックに実行し、ドキュメントにデータを入力します。
  4. ウェブサーバーが HTTP レスポンスを送信します。documents.batchUpdate メソッドの中には、適用されたリクエストに関する情報をレスポンスの本文に提供するものと、空のレスポンスを表示するものがあります。

ドキュメント更新ワークフロー

既存のドキュメントの更新はより複雑です。ドキュメントを更新して意味のある呼び出しを行う前に、現在の状態(構成する要素、要素に含まれるコンテンツ、ドキュメント内の要素の順序など)を把握しておく必要があります。次のシーケンス図に、この仕組みを示します。

ドキュメントを更新するワークフロー。
図 2. ドキュメントを更新するワークフロー。

図 2 では、documents リソースを操作しているユーザーの次のような情報フローを示しています。

  1. アプリは、ファイルの documentId を使用してウェブサーバーの documents.get メソッドを呼び出します。
  2. ウェブサーバーが、指定されたドキュメントのインスタンスを documents リソースとして含む HTTP レスポンスを送信します。返される JSON には、ドキュメントの内容、フォーマット、その他の機能が含まれます。
  3. アプリが JSON を解析し、ユーザーが更新するコンテンツや形式を決定できるようにします。
  4. アプリは documents.batchUpdate メソッドを呼び出して、ドキュメントを更新する一連の編集リクエストをアトミックに実行します。
  5. ウェブサーバーが HTTP レスポンスを送信します。documents.batchUpdate メソッドの中には、適用されたリクエストに関する情報をレスポンスの本文に提供するものと、空のレスポンスを表示するものがあります。

この図では、同じドキュメントで他の共同編集者による同時更新が行われるワークフローは考慮されていません。詳細については、ベスト プラクティスのセクションのコラボレーションを計画するをご覧ください。