Google Docをテキストとしてエクスポートしようとしています。私は2つのアプローチを試しましたが、どちらもうまくいきません内容をエクスポートGoogleドライブからtext/plainをエクスポートする
は、私は単純な文字列に変換することができていないバイトのオブジェクトとして内容を取得:
req = service.files().export_media(fileId=file_id,mimeType='text/plain')
fh = io.BytesIO()
download = MediaIoBaseDownload(fh, req)
done = False
while done is False:
status, done = download.next_chunk()
return fh.getvalue()
私はその後、コーデックのエラー
の変異体を取得しますreturn codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps to < undefined >
またはこれら:
TypeError: write() argument must be str, not bytes
だから、型変換の問題だ、私は推測する、と私はそれを解決することができた場合それはうまくいくだろう。
でも、ファイルをtext/plainとしてダウンロードするには、exportLinksプロパティを使用するだけです。問題は、それが簡単に欠けている、次のとおりです。
file = service.files().get(fileId=id).execute()
pprint.pprint(file)
{'id': 'xxxxxxxxxx',
'kind': 'drive#file',
'mimeType': 'application/vnd.google-apps.document',
'name': 'export'}
ファイル[ 'exportLinksを']、当然、KeyError例外を与える:
KeyError: 'exportLinks'
それは今 'https://www.googleapis.com/auth/drive' ですので、私はリラックスしたスコープをしました、そのことは問題ではないはずです。
私には何が欠けていますか?
exportLinksドライブAPI v3では利用できません - [移行ガイド](https://developers.google.com/drive/v3/web/migration)を参照してください - 「exportLinksフィールドがファイルから削除されました"... – Bardy
コードサンプルはドライブAPIのサンプルページと同じように見えますが、正しいはずです。エラーが発生している場所の完全なトレースを投稿できますか? – Bardy
Ha、実際にv2 APIドキュメントを使用していたので、exportLinksの問題について説明しています.(私はfiles.export()を試していましたが、これもバイトオブジェクトを返します。 - 私はそのPCの前に戻ってきたときにその痕跡を投稿します。 あなたは正しいAPIサンプルです - 私はquickstart.pyサンプルから始めて、サンプルコードをプラグインしました。 !。これは本当にここに私の道を感じて前にドライブのAPI – zaump