7

我可以通过传递 userId、nessageID 和 attachmentID 来获取附件(供参考:

谷歌开发者

可可文档

我收到如下回复。

{ "data": "JVBERi0xLjYKJeTjz9IKMSAwIG9iagpbL1BERi9JbWFnZUIvSW1hZ2VDL0l...." "size": 629163 }

我想解码数据以保存在我的本地应用程序中,稍后我将显示。

我可以成功下载并保存在本地(文件夹)但无法看到附件中的内容请完善我。

4

1 回答 1

1

我刚刚成功(几分钟前!)在 Swift 中解码检索到的附件数据(对不起,我无法编写 Objective-c 代码)所以这里是步骤:

1)计算“数据”中的字符数。Base64 编码字符串的字符数必须是 4 的倍数。如果不是这种情况,则需要在字符串末尾填充尽可能多的“=”字符,以达到下一个 4 的倍数。 (我相信谷歌已经发送了不需要修补的数据,但你永远不知道......)

2) 正如我在此 SO 链接中发现的那样(iOS - 使用 messageId 和 attachmentId 从 Gmail 下载附件),Google 替换了 HTTP 传输的一些字符,因此您需要替换:

  • “-”(减号)由“+”(加号)

  • "_" (下划线) by "/" (斜线)

3)然后使用这个Swift Data init方法将“准备好的”Base64字符串转换为Data:Data(base64:YourBase64String,options:.ignoreUnknownCharacters

然后,您可以将此转换后的数据保存到具有正确扩展名的文件中。我设法检索 jpeg 和 pdf 格式的附件。

我希望这个对你有用。

于 2018-10-24T14:24:28.903 回答