关于 gmail api:在 WSO2 EI 6.3.0 中将 Base64 URL 转换为 Base64 编码格式

To Convert Base64 URL to Base64 Encoded format in WSO2 EI 6.3.0

我从 Gmail API 获取电子邮件附件(图片),它返回 base64url 编码字符串。但实际编码与此 gmail api 不同("/" 被替换为 "_" 并且 "" 被替换为 "-" 等)。我想获取原始的 base64 编码字符串而不是 base64 url?? 编码格式。我应该从 gmail api 响应中替换这两个符号("/","")还是有人可以帮我实现这个吗?我正在尝试使用 WSO2 EI 6.3.0。

1
2
3
4
5
6
 <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/....


在 Javascript 中,最简单的方法是使用 replace() 方法:

newData=data.replace(/-/g, '+').replace(/_/g, '/')