在 GMAIL API Get Calls 中传递变量值

Posted

技术标签:

【中文标题】在 GMAIL API Get Calls 中传递变量值【英文标题】:Passing variable values in GMAIL API Get Calls 【发布时间】:2021-02-22 16:24:14 【问题描述】:

所以我正在尝试使用 GMAIL API 来获取消息。这样做需要我提供一个 messageID。我在本地列表中存储了几个消息 ID。但是,当我尝试将列表元素作为迭代传递给 GET 请求时,它只会将变量值用作字符串而不是变量本身。 有什么办法可以规避吗? IE。将 id='str(s) 替换为变量中的实际数字 '12345234534'

for s in ID_List:
    req_result = service.users().messages().get(userId='me', id='str(s)').execute()

返回以下错误:

    File "redacted", line 60, in main
    req_result = service.users().messages().get(userId='me', id='str(s)').execute()
  File "redacted\Python39\lib\site-packages\googleapiclient\_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "redacted\Python\Python39\lib\site-packages\googleapiclient\http.py", line 915, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://gmail.googleapis.com/gmail/v1/users/me/messages/str%28s%29?alt=json returned "Invalid id value". Details: "Invalid id value">

Gmail API 是否可能不允许我将变量作为查询字符串传递?

提前致谢!

【问题讨论】:

【参考方案1】:

试试这个:

req_result = service.users().messages().get(userId='me', id=s).execute()

【讨论】:

遗憾的是没有工作,不同的错误消息: 返回“未找到请求的实体。”。详细信息:“未找到请求的实体。 @Manuel 我可以看到请求的 URL 吗?这是因为请求的消息不存在,或者您传递的 id 需要采用不同的格式。 当然 GET gmail.googleapis.com/gmail/v1/usersuserId/messages/id 每当我将 id 替换为真实现有的(硬编码)时,它工作得很好,它是引起我问题的变量跨度> 我想通了,可以关闭

以上是关于在 GMAIL API Get Calls 中传递变量值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中跟踪使用 GMAIL API 发送的电子邮件的已发送、已打开、已单击、已退回、已阻止等电子邮件传递状态

使用 Gmail API 获取邮件正文

Gmail API - 值 '= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)' 的格式无效

使用 Gmail API 在 html 中检索电子邮件/消息正文

使用 Powershell 从 GMAIL API 获取消息正文

Gmail API 批量获得支持?