【发布时间】:2020-02-06 10:35:09
【问题描述】:
我收到来自Gmail API 的电子邮件附件(图片),它返回base64url 编码字符串。但实际编码与此 gmail api 不同(“/”替换为“_”,“+”替换为“-”等)。我想获取原始的 base64 编码字符串而不是 base64 url 编码格式。我应该从 gmail api 响应中替换这两个符号(“/”、“+”)还是有人可以帮我实现这个吗?我正在尝试使用 WSO2 EI 6.3.0。
<call>
<endpoint>
<http method="get" uri-template="{+uri.var.gmail.apiUrl}/{+uri.var.gmail.apiVersion}/users/{+uri.var.gmail.userId}/messages/{+uri.var.id}/attachments/{+uri.var.attachmentId}"/>
</endpoint>
</call>
<property description="emailAttachment" expression="//data/text()" name="emailAttachment" scope="default" type="STRING"/>
例如,
来自 Gmail API: 调用后,它会在“data”键中返回以下值。
_9j_4AAQSkZJRgABAQAASABIAAD_4QBMRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAPwKADAAQAAAABAAAL0AAAAAD_....
原始 Base64 编码值:
/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAPwKADAAQAAAABAAAL0AAAAAD/....
【问题讨论】:
-
不,不是。我期待 Base64 编码值。我需要将来自 gmail api 的 base64url 编码值转换为 base64 编码值。
-
你真的读了吗?
-
您要使用哪种语言进行转换?
-
嗨@ziganotschka,我正在WSO2 EI 中执行此操作。为此,我已经包含了从 gmail 获取 base64url 编码字符串以进行附件的方式。所以我需要在 WSO2 EI 中完成这个。我也可以使用脚本。例如。
<script language="js"><![CDATA[var log=mc.getServiceLog(); var emailAttachment = mc.getProperty('emailAttachment'); emailAttachment=emailAttachment.replaceAll("_","/").replaceAll("-","+"); log.info("Modified Content is:" + emailAttachment); mc.setProperty("modifiedemailAttachment",emailAttachment)]]></script>
标签: base64 gmail-api base64url