我可以通过传递userId,nessageID和attachmentID来获取附件(供参考:
我得到的答案如下所示。
{
"data": "JVBERi0xLjYKJeTjz9IKMSAwIG9iagpbL1BERi9JbWFnZUIvSW1hZ2VDL0l...."
"size": 629163
}
我想解码数据以保存在我的应用本地,稍后我会显示。
我可以成功下载并保存在本地(文档文件夹)但无法看到附件中的内容请让我完美。
答案 0 :(得分:1)
(几分钟前!)我已经成功地解码了在Swift中检索到的附件数据(很抱歉,我无法对Objective-c进行编码),所以这里是步骤:
1)计算“数据”中的字符数。 Base64编码的字符串必须具有4的倍数的字符数。如果不是这种情况,则需要在字符串的末尾添加尽可能多的“ =”字符,以达到下一个4的倍数。 (我相信Google无需打补丁就可以发送数据,但您永远不会知道...)
2)正如我在此SO链接(iOS - download attachment from Gmail using messageId and attachmentId)中发现的那样,Google为HTTP传输替换了一些字符,因此您需要替换:
“-”(减号)乘以“ +”(加号)
“ _”(下划线字符)由“ /”(斜杠字符)
3)然后使用此Swift Data初始化方法将“准备好的” Base64字符串转换为Data:Data(base64: YourBase64String ,选项: .ignoreUnknownCharacters )
然后,您可以将转换后的数据保存到具有正确扩展名的文件中。我设法检索了jpeg和pdf格式的附件。
我希望它对您有用。