2017-07-31 19 views
2

PyDriveを使用してGoogleドライブにファイルを作成していますが、実際のGoogle Docタイプの項目に問題があります。PyDrive:Google Docファイルを作成する

私のコードは次のとおりです。

file = drive.CreateFile({'title': pagename, 
"parents": [{"id": folder_id}], 
"mimeType": "application/vnd.google-apps.document"}) 

file.SetContentString("Hello World") 

file.Upload() 

私はtext/plainにMIMEタイプを変更するが、それは私にエラーを与えているようならばこれが正常に動作します:

raise ApiRequestError(error) pydrive.files.ApiRequestError: https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&alt=json returned "Invalid mime type provided">

私はMIMEタイプを離れる場合、それはまた、正常に動作しますそのままで、SetContentStringへの呼び出しを削除します。そうすれば、2つのものがうまく動作しないように見えます。

Googleドキュメントを作成してコンテンツを設定する適切な方法は何ですか?

+0

追加:このから基づいて、[ドキュメント](https://developers.google.com/drive/v3/reference/files/作成)を選択すると、値が指定されていない場合、アップロードされたコンテンツから適切な値が自動的に検出されます。新しいリビジョンがアップロードされない限り、値を変更することはできません。関連スレッドは次のとおりです。https://stackoverflow.com/questions/43988753/googles-file-insert-v2-api-fails-to-recognise-mime-type-application-vnd-google – abielita

答えて

2

MIMEタイプは、アップロードされたファイル形式と一致している必要があります。サポートされている形式のファイルが必要で、一致するコンテンツタイプでアップロードする必要があります。したがって、いずれか:

file = drive.CreateFile({'title': 'TestFile.txt', 'mimeType': 'text/plan'}) 
file.SetContentString("Hello World") 
file.Upload() 

このファイルにはGoogleノートブックからアクセスできます。または、

file = drive.CreateFile({'title': 'TestFile.doc', 
         'mimeType': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'}) 
file.SetContentFile("TestFile.docx") 
file.Upload() 

Googleドキュメントで開くことができます。サポートされているフォーマットと対応するMIMEタイプのリストはhereです。 Googleドキュメント形式にオンザフライでファイルを変換するには

、使用:

file.Upload(param={'convert': True}) 
+0

これはちょうど逆に直感的なようです。 Google Docs独自フォーマットをGoogle Docs APIで使用するには、別のフォーマットをアップロードして変換する必要があります。テキスト/プレーンとして保存してから、アップロードコマンドにconvertコマンドを追加すると、ありがとう – awestover89

関連する問題