我可以通过传递userId、nessageID和attachmentID来获取附件(引用:
我收到如下回复。
{
“数据”:“JVBERi0xLjYKJeTjz9IKMSAwIG9iagpbL1BERi9JbWFnZUIvSW1hZ2VDL0l......”
“尺寸”:629163
}
我想解码数据以保存在我的应用程序本地,稍后我将显示。
我可以成功下载并保存到本地(文档文件夹),但看不到附件中的内容,请完善我。
最佳答案
我刚刚成功(几分钟前!)在 Swift 中解码检索到的附件数据(抱歉,我无法编写 Objective-C 代码),因此步骤如下:
1) 计算“data”中的字符数。 Base64 编码的字符串必须具有 4 的倍数的字符数。如果不是这种情况,则需要在字符串末尾填充尽可能多的“=”字符,以达到下一个 4 的倍数。 (我相信 Google 已发送数据而无需修补,但你永远不知道......)
2) 正如我在此 SO 链接 ( iOS - download attachment from Gmail using messageId and attachmentId ) 中发现的,Google 替换了 HTTP 传输的一些字符,因此您需要替换:
“-”(减号字符)乘“+”(加号字符)
“_”(下划线字符)乘“/”(斜杠字符)
3) 然后使用此 Swift Data init 方法将“准备好的”Base64 字符串转换为数据:Data(base64: YourBase64String, options: .ignoreUnknownCharacters)
然后您可以将转换后的数据保存到具有正确扩展名的文件中。我已成功检索 jpeg 和 pdf 格式的附件。
希望它对你有用。
关于gmail - 解码 Gmail API 下载的附件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50503037/