Google Documents List APIのドキュメントには、ローカルドキュメントを作成してアップロードできると書かれているようです。APIを介してGoogleドキュメントで実際にドキュメントを作成および編集する方法はありませんか?
4 に答える
ドキュメントでは「アップロード」と呼んでいますが、すべては適切にフォーマットされたHTTP POST
リクエストを送信することになります。したがって、もちろん、既存のファイルの実際の「アップロード」ではなく、実際には新しい作成である可能性があります。(POST
リクエストによる作成は、通常はとして説明されるものと似ていますREST API
が、実際には、通常、もちろん代わりにリクエストをREST
使用します)。PUT
ここにリストされている形式のいずれかでドキュメントを表すデータのブロブを作成する必要があります。プログラミング言語によっては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では、ドキュメントごとに、APIはETags
、複数のクライアントが同時に「アップロード」しているとき(つまり、ドキュメントを作成または更新しているとき)に変更を上書きしないようにすることを推奨しています。ただし、ほぼREST APIは、すべての言語固有のAPIの基礎となるプロトコルとして文書化されているため、POSTを直接準備することは常に可能です。
アレックスの答えは間違いなく正しいですが、「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で見つけたテクニックの小さなマッシュアップであり、これを介して見つけました。 GDataDocsAPIに関するGoogleグループからの投稿。
(とにかく私にとって)重要な洞察は次のとおりです。
- MediaSourceコンストラクターの正式なパラメーター「file_handle」がファイルのようなオブジェクトを受け取ることを認識し、
- (Googleグループの投稿に対するOPのフォローアップで言及されているように)単体テストが優れた例のソースであることを発見する
(Alexのドキュメントリンクで参照されているPython固有の開発者ガイドを見つけることができませんでした-おそらく、code.google.comからdevelopers.google.comへのGoogleのドキュメントアセットの移動で失われたか埋もれています。Alexのリンクがリダイレクトされるようになりました主に.NETとJavaの例を示していますが、Pythonはごくわずかです。)
2019年2月4日の時点で、GoogleドキュメントにRESTAPIが追加されました。
ドキュメントを参照してください: https ://developers.google.com/docs/api/
(2019年9月)プログラムでGoogleドキュメントにドキュメントを作成する方法は3つあります。
- Google Docs REST API(低レベル、Python、JS / Node.js、Java、C#/。NET、PHP、Ruby、Goなど)
- Google Apps Script(高レベル、JavaScriptのみ)
- GoogleドライブAPI(上記のドキュメントAPIのような低レベル。上記の両方の方法でドキュメントを作成または編集できますが、これは作成または削除のみで、共有/権限の編集が可能です)
Docs APIは2019年2月に正式にリリースされました。私は、 APIを使用したメールマージアプリケーションがどのようになるかについての高レベルのビデオ概要を作成しました。(これは本格的なG Suite Dev Showのエピソードではありませんが、実用的なサンプルにリンクしています。)さまざまなプログラミング言語でのクイックスタートの例など、APIの使用に関するさまざまなガイドを確認してください。
OTOH、Apps Scriptは、よりシンプルで高レベルの代替手段です。これは、Googleのクラウドでホスト+実行されるアプリをサポートするカスタムサーバーサイドJavaScriptランタイムです。オブジェクトを使用して、HTTP、REST、またはOAuth2の知識がなくても、さまざまなGoogle API(G Suite以降)と通信します。JDBCサービスを使用して外部データベースにアクセスしたり、 URLフェッチサービスを介して他のアプリを呼び出したりすることもできます。
Apps Scriptを使用すると、スタンドアロンアプリケーション、ドキュメントバインドアプリケーション(単一のドキュメントでのみ機能)、またはGoogleドキュメントアドオンを作成して、Googleドキュメントの機能を拡張できます。こちらが、Google Docs Apps Scriptの概要ページと、Google Docs(Document Service)のAppsScriptリファレンスドキュメントです。また、それがあなたの好みの学習手段である場合は、さまざまなAppsScriptビデオを作成しました。Apps Scriptを初めて使用する場合は、同様のSOの質問に対する私の回答を参照してください。
通常、ドキュメント、スプレッドシート、スライドなどのAPIはドキュメント指向の機能を実行するために使用されますが、ドライブAPIは主にファイルベースの操作に使用されます。ただし、「作成」はどちらかを使用できる特殊なケースです。SheetsAPIとDriveAPIを使用して新しいGoogleSheetを作成する場合の違いを示す別のSOの質問に対する私の回答を参照してください。(Pythonの両方のサンプル。)Googleドキュメントの共有または更新のアクセス許可の管理に関心がある場合は、これをお読みください。