如何使用Google api和python在google文档中打开文件?

时间:2019-09-11 13:22:57

标签: python google-api google-docs-api google-api-python-client

我尝试打开由python / django编写的应用程序发送的文件。用于创建空白文档的Usin文档link,我尝试转移现有文件以在Google文档中打开。

views.py

SCOPES = ['https://www.googleapis.com/auth/documents.readonly']
def file_to_gd_docs(import_file=None):
    .... 
    #authorization part(success)
    ....
    service = build('docs', 'v1', credentials=creds)

    title = 'My Document'
    body = {
        'title': title
    }
    doc = service.documents().create(body=import_file).execute()
    print('Created document with title: {0}'.format(
        doc.get('title')))

我将 import_file 的值作为变量 body 的值 我收到错误

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://docs.googleapis.com/v1/documents?alt=json returned "Request had insufficient authentication scopes.">

如何正确地将外部文件传输到Google文档以供打开?

2 个答案:

答案 0 :(得分:1)

Documents.create需要以下范围之一

enter image description here

您使用的https://www.googleapis.com/auth/documents.readonly会给您带来错误

  

请求的身份验证范围不足。

解决方案

将范围更改为所需的范围之一,然后再次请求用户访问。

答案 1 :(得分:0)

这取决于您为什么要这样做。上面是使用Google的api的正确方法,但是您也可以使用以下技巧:
url = https://docs.google.com/document/u/0/ webbrowser.open(URL)

然后使用pyautogui最大化或平铺窗口,然后单击“新建”。这仅适用于一种尺寸的显示器。如果移至另一个系统,则需要更改pyautogui的单击位置。另外,如果Google更改了页面布局,则可能会中断。

当我想口述笔记时,我会与语音助手一起执行此操作。这只是给我的,而不是分发的;那为什么不呢?我不想在github上的代码中输入我的api密钥。这对于许多共享代码但需要api键的人来说是一个痛苦。