【问题标题】:Getting message body from GMAIL API using Powershell使用 Powershell 从 GMAIL API 获取消息正文
【发布时间】:2018-07-06 20:17:31
【问题描述】:

我已成功使用 Powershell 连接到 GMAIL API。 但是,我很难找到获取消息正文的位置。

根据 GMAIL 的文档: https://developers.google.com/gmail/api/v1/reference/users/messages/get

它应该在 Payload 属性下: 获取https://www.googleapis.com/gmail/v1/users/userId/messages/id

这是我运行的:

Invoke-WebRequest -Uri "https://www.googleapis.com/gmail/v1/users/me/messages/$($id)?access_token=$accesstoken&format=full" -Method Get | ConvertFrom-Json | select -ExpandProperty payload

这是我返回的示例:

查看属性,我似乎没有找到任何靠近邮件正文的东西。我错过了什么?

【问题讨论】:

  • 如果成功,此方法在响应正文中返回一个 Users.messages 资源。
  • 他们有一个 dotnet 库,继续使用它。

标签: powershell gmail gmail-api


【解决方案1】:

最终我找到了我想要的东西。 事实证明,谷歌在 Base64 中对正文进行编码。这也在对象集合的层层之下。

$test = Invoke-WebRequest -Uri "https://www.googleapis.com/gmail/v1/users/me/messages/$($id)?access_token=$accesstoken&format=full" -Method Get | ConvertFrom-Json
$body = $test.payload.parts[0].parts.body.data[0] | Out-String
$d = $body.Replace(‘-‘,’+’).Replace(‘_’,’/’)
[String]$e = [System.Text.Encoding]::Ascii.GetString([System.Convert]::FromBase64String($d))
$e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 2016-06-01
    • 1970-01-01
    • 2016-09-21
    • 2018-05-31
    • 2018-01-17
    • 2016-05-29
    • 2016-12-12
    相关资源
    最近更新 更多