web-dev-qa-db-ja.com

プログラムでGoogleドキュメントにドキュメントをどのように作成しますか?

Google Documents List APIのドキュメント は、ローカルドキュメントを作成してアップロードできると言っているようです。実際にドキュメントを作成および編集する方法はありませんon APIを介してGoogleドキュメント?

27
snoopy

the docs を「アップロード」と呼びますが、すべてが適切にフォーマットされたHTTP POSTリクエストを送信することになるので、もちろん実際には新しい作成である可能性がありますそれ以外の場合は既存のファイルの実際の「アップロード」よりも。 (POSTリクエストによる作成は、通常REST APIと呼ばれるものと似ていますが、実際のRESTでは通常、代わりにPUTリクエストを使用します)。

リストされたフォーマットのいずれかでドキュメントを表すデータのblobを作成する必要があります ここ -プログラミング言語によっては、スプレッドシートの場合はtext/csv、テキストドキュメントの場合はapplication/rtfが最も簡単です-次に、適切にフォーマットされたPOSTデータを入力します。たとえば、スプレッドシートを最も簡単な方法(メタデータなし)で作成するには、POSTのようにします。

POST /feeds/default/private/full HTTP/1.1
Host: docs.google.com
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 81047
Content-Type: text/csv
Slug: Example Spreadsheet

ColumnA, ColumnB
23, 45

専用のAPIが提供されている特定のプログラミング言語ごとに、このそれほど難しいタスクのヘルプが提供される場合があります。たとえば、Pythonでは the docs に従って、APIはETagsを使用して、複数のクライアントが同時に「アップロード」している(つまり、ドキュメントを作成または更新している)ときに変更を上書きしないようにすることをお勧めします。しかし、POSTを直接準備することは常に可能です。ほとんどRESTのAPIは、すべての言語の基礎となるtheプロトコルとして文書化されているためです。固有のAPI。

27
Alex Martelli

Alexの答えは間違いなく正しいものの、「Google Docs APIを使用してそれを行うにはどうすればよいですか?」

ここに方法があります(Pythonでは、私がそのような人だからです):

import gdata.docs.service
import StringIO

client = gdata.docs.service.DocsService()
client.ClientLogin(username, password,
                   source='Spreadsheet Creation Example')

content = 'COL_A, COL_B, COL_C, COL_D\ndata1, data2, data3, data4'
ms = gdata.MediaSource(file_handle=StringIO.StringIO(content),
                       content_type='text/csv',
                       content_length=len(content))
entry = client.Upload(ms, 'Test Spreadsheet')

これは http://code.google.com/p/gdata-python-client/source/browse/tests/gdata_tests/docs/service_test.py で見つけたテクニックの小さなマッシュアップですこれは、GData Docs APIのGoogleグループから this post を介して順番に見つかりました。

(とにかく私にとって)重要な洞察は次のとおりです。

  1. mediaSourceコンストラクターの仮パラメーター「file_handle」が任意のファイルのようなオブジェクトを取ることを認識し、
  2. ユニットテストが優れた例のソースであることを(OPのGoogleグループの投稿へのフォローアップで言及されているように)発見する

(Alexのドキュメントリンクで参照されているPython固有の開発者ガイドを見つけることができませんでした。おそらく、失われているか、code.google.comからdeveloper.google.comへのドキュメントアセットのGoogleの移動に埋もれています。Alexのリンクがリダイレクトされます主に.NETとJavaの例ですが、Pythonはほんの少しです。)

13
Hephaestus

2019年2月4日以降、GoogleドキュメントにREST API。

ドキュメントを参照してください: https://developers.google.com/docs/api/

2
Dimu Designs

(2019年9月)プログラムでGoogleドキュメントにドキュメントを作成するには、3つの方法があります。

  1. Google Docs REST API (低レベル; Python、JS/Node.js、Java、C#/。NET、PHP、Ruby、Goなど)
  2. Google Apps Script (高レベル; JavaScriptのみ)
  3. Google Drive API (上記のDocs APIのような低レベル。上記の両方の方法でドキュメントを作成または編集できますが、これは作成または削除のみであり、共有/権限の編集です)

ドキュメントAPIは正式に2019年2月に リリース でした。APIを使用した差し込み印刷アプリケーションがどのようなものになるかについて 高レベルのビデオの概要 を作成しました。 (本格的な G Suite Dev Show エピソードではありませんが、実際のサンプルへのリンクはあります。)クイックスタートの例を含むAPIの使用に関するさまざまな guides を確認してください。さまざまなプログラミング言語。

OTOH、Apps Scriptはよりシンプルで高レベルの代替手段です。これは、Googleのクラウドでホスト+実行されるアプリをサポートするカスタムサーバーサイドJavaScriptランタイムです。 HTTP、REST、OAuth2の知識がなくても、オブジェクトを使用して さまざまなGoogle API(G Suite以降) と通信します。 JDBCサービス を使用して外部データベースにアクセスしたり、 RLフェッチサービス を介して他のアプリを呼び出したりすることもできます。

Apps Scriptを使用すると、 スタンドアロンアプリケーションドキュメントバインドアプリケーション (単一のドキュメントでのみ機能)、または Googleドキュメントアドオン を作成できます。 Googleドキュメントの機能を拡張します。 GoogleドキュメントのAppsスクリプト 概要ページ と、Googleドキュメント(ドキュメントサービス)のAppsスクリプト リファレンスドキュメント を次に示します。 さまざまなApps Scriptビデオ も作成しました。 Apps Scriptを初めて使用する場合は、 同様のSO質問)への私の回答 を参照して、その他の学習リソースを確認してください。

通常、ドキュメント、シート、スライドなどのAPIはドキュメント指向の機能を実行するために使用され、Drive APIは主にファイルベースの操作に使用されます。ただし、「作成」はどちらでも使用できる特殊なケースです。 別の答えSO質問 を参照してください。これは、Sheets APIとDrive APIによる新しいGoogle Sheetの作成の違いを示しています。(Pythonの両方のサンプル。)Googleドキュメントの共有または更新権限の管理に興味がある場合は、 this をお読みください。

0
wescpy