【问题标题】:raw attribute in Message Resource in Ballerina/gmail packageBallerina/gmail 包中消息资源中的原始属性
【发布时间】:2018-07-06 18:18:27
【问题描述】:
var response = gmailClient->readMessage(userId,msg_id);
gmail:Message msg;
match response {
    gmail:Message m => msg = m;
    gmail:GmailError err=> io:println(err);
}
gmail:MessageBodyPart msg_body = msg["plainTextBodyPart"];
string msg_content = msg["raw"];

当我在ballerina/Gmail包的消息资源中使用'plainTextBodyPart'属性时,它会正确返回消息正文。但是如果我使用与上述相同资源的'raw'属性,它会返回一个空值。什么是我的代码中的错误?

【问题讨论】:

    标签: ballerina


    【解决方案1】:

    Ballerina GmailConnector[1] 的 readMessage() 函数接受 4 个参数,其中 2 个是可选的。 formatmetadataHeaders 参数是可选的。您也可以参考 Gmail API 文档 [2]。

    在您的情况下,由于您没有为 format 传递任何值,因此您的 readMessage 请求将具有默认格式,即 "FORMAT_FULL" [3]。 API 文档[1] 中也对此进行了说明。因此,您从 Gmail API 获得的响应将没有字段 "raw"Message 资源的 "raw" 字符串字段连接器将为空 [4]。因此,当您尝试以 msg["raw"] 的形式访问它时,您会得到一个空字符串。

    你得到的是一个空字符串还是一个空值?因为理想情况下它应该为您的代码返回一个空字符串,当我尝试相同的代码时,我得到了 "raw" 字段的空字符串,如预期的那样。

    如果您想使用 "raw" 字段以 RFC 2822 格式和 base64url 编码的字符串获取整个电子邮件,请通过提供格式为 FORMAT_RAW,

    var response = gmailEP->readMessage(userId, messageId, format = gmail:FORMAT_RAW);
    

    如果这对你有帮助,请告诉我。

    [1]https://central.ballerina.io/wso2/gmail

    [2]https://developers.google.com/gmail/api/v1/reference/users/messages/get

    [3]https://github.com/wso2-ballerina/package-gmail/blob/master/gmail/gmail_connector.bal#L75

    [4]https://github.com/wso2-ballerina/package-gmail/blob/master/gmail/gmail_data_mappings.bal#L40

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-14
      • 2018-07-09
      • 2018-10-04
      • 1970-01-01
      • 2011-10-22
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多