如何使用python和Google Docs API获取已创建文件的ID?

如何使用python和Google Docs API获取已创建文件的ID?,python,google-docs-api,Python,Google Docs Api,我正在编写一个简单的python程序来收集信息并将其格式化为google文档。我希望程序创建文档,然后向其中添加文本。我可以很容易地创建一个程序,而且我在向现有文档添加文本方面没有遇到任何问题。但是,我无法访问程序中创建的文档的ID,因此无法向其中添加文本。如何获取在要编辑文档的同一程序中创建的文档的ID?按照以下链接中的步骤1和步骤2进行操作: 然后尝试以下代码: import pickle import os.path from googleapiclient.discovery impo

我正在编写一个简单的python程序来收集信息并将其格式化为google文档。我希望程序创建文档,然后向其中添加文本。我可以很容易地创建一个程序,而且我在向现有文档添加文本方面没有遇到任何问题。但是,我无法访问程序中创建的文档的ID,因此无法向其中添加文本。如何获取在要编辑文档的同一程序中创建的文档的ID?

按照以下链接中的步骤1和步骤2进行操作:

然后尝试以下代码:

import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
SCOPES = ['https://www.googleapis.com/auth/documents']
creds = None

if os.path.exists('token.pickle'):
  with open('token.pickle', 'rb') as token:
    creds = pickle.load(token)

# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
  if creds and creds.expired and creds.refresh_token:
    creds.refresh(Request())
  else:
    flow = InstalledAppFlow.from_client_secrets_file('/content/credentials.json', SCOPES)
    #creds = flow.run_local_server(port=0)
    creds = flow.run_console()
  # Save the credentials for the next run
  with open('token.pickle', 'wb') as token:
      pickle.dump(creds, token)

service = build('docs', 'v1', credentials=creds)

title = 'My Test Document'
body = {
    'title': title
}
doc = service.documents().create(body=body).execute()
docId = doc.get('documentId')
print( 'Id of new Document is : ' + docId )

注:
将文件
credentials.json
放在适当的位置,并相应地在代码中设置路径。

您可以发布一个您尝试过的代码示例吗?使用API创建Google文档有多种方法-驱动器和文档(和工作表)API都有创建文档的功能。确定。这就是我用来创建文档的方法:
doc=docsService.documents().create(body=body.execute()
这与API参考中“创建文档”一节中描述的差不多。但是,来自同一引用的“插入文本”部分有以下行:
result=docsService.documents().batchUpdate(documentId=,body={'requests':requests})。execute()
执行,它需要一个文档ID,如果不手动打开文档并从URL复制,我似乎无法获得该ID。您拥有对象文档,所以要获得文档Id,只需要调用docId=doc.get('documentId')啊,我只是个白痴。出于某种原因,我尝试使用“get('docId')”。谢谢