このガイドでは、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 に精通している場合、documentId
は files
リソースの 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 では、documents
リソースを操作しているユーザーに、次の情報フローがあります。
- アプリがウェブサーバーの
documents.create
メソッドを呼び出します。 - ウェブサーバーが、作成されたドキュメントのインスタンスを
documents
リソースとして含む HTTP レスポンスを送信します。 - 必要に応じて、アプリは
documents.batchUpdate
メソッドを呼び出して一連の編集リクエストをアトミックに実行し、ドキュメントにデータを入力します。 - ウェブサーバーが HTTP レスポンスを送信します。
documents.batchUpdate
メソッドの中には、適用されたリクエストに関する情報をレスポンスの本文に提供するものと、空のレスポンスを表示するものがあります。
ドキュメント更新ワークフロー
既存のドキュメントの更新はより複雑です。ドキュメントを更新して意味のある呼び出しを行う前に、現在の状態(構成する要素、要素に含まれるコンテンツ、ドキュメント内の要素の順序など)を把握しておく必要があります。次のシーケンス図に、この仕組みを示します。
図 2 では、documents
リソースを操作しているユーザーの次のような情報フローを示しています。
- アプリは、ファイルの
documentId
を使用してウェブサーバーのdocuments.get
メソッドを呼び出します。 - ウェブサーバーが、指定されたドキュメントのインスタンスを
documents
リソースとして含む HTTP レスポンスを送信します。返される JSON には、ドキュメントの内容、フォーマット、その他の機能が含まれます。 - アプリが JSON を解析し、ユーザーが更新するコンテンツや形式を決定できるようにします。
- アプリは
documents.batchUpdate
メソッドを呼び出して、ドキュメントを更新する一連の編集リクエストをアトミックに実行します。 - ウェブサーバーが HTTP レスポンスを送信します。
documents.batchUpdate
メソッドの中には、適用されたリクエストに関する情報をレスポンスの本文に提供するものと、空のレスポンスを表示するものがあります。
この図では、同じドキュメントで他の共同編集者による同時更新が行われるワークフローは考慮されていません。詳細については、ベスト プラクティスのセクションのコラボレーションを計画するをご覧ください。