【问题标题】:Get attachments in GMail API在 Gmail API 中获取附件
【发布时间】:2016-04-26 04:21:13
【问题描述】:

我正在尝试从 golang 的邮件中获取附件。问题出在从 Gmail 读取的 base64 有效负载中,这给了我错误

illegal base64 data at input byte 13

这是我的代码(省略了错误处理) ..

attach, _ := srv.Users.Messages.Attachments.Get(user, messageid, attachmentid).Do()
decoded, err := base64.StdEncoding.DecodeString(attach.Data)

这会引发上述错误,如果我查看 GMail 中的原始消息,可以在标题之后看到:

begin 644 filename-of-the-attachment.extension
M'XL(`/Y;GU8``^S]R[(>R9&E"\[[*5)JVI*6;N9WS(_TD3/J0<U:>H`*;F9"...

任何帮助表示赞赏 谢谢

【问题讨论】:

标签: go gmail gmail-api


【解决方案1】:

问题出在 base64 编码中:正如文档所说,有效负载(“完整”或“原始”模式)是 base64URL 编码,而不是 base64。 所以这段代码是有效的:

attach, _ := srv.Users.Messages.Attachments.Get(user, messageid, attachmentid).Do()
decoded, err := base64.URLEncoding.DecodeString(attach.Data)
fileout, err := os.OpenFile(...

也就是说,我看到完整模式(默认)更容易处理 :)

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 2020-10-12
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2016-12-16
    • 2016-01-08
    相关资源
    最近更新 更多