Ballerina/gmail 包中消息资源中的原始属性
raw attribute in Message Resource in Ballerina/gmail package
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' 属性时,它 returns 消息正文是正确的。但是如果我使用相同的 'raw' 属性资源如上,它 returns 一个 null value.What 是我代码中的错误吗?
Ballerina GmailConnector[1] 的 readMessage() 函数接受 4 个参数,其中 2 个是可选的。 format 和 metadataHeaders 参数是可选的。您也可以参考 Gmail API 文档 [2]。
在您的情况下,由于您没有为 format 传递任何值,您的 readMessage 请求将具有默认格式,即 "FORMAT_FULL" [3]。 API 文档[1] 中也有说明。因此,您从 Gmail API 获得的回复不会包含字段 "raw" 和 "raw" 连接器的 Message 资源的字符串字段将为空 [4]。因此,当您尝试以 msg["raw"].
访问它时,您会得到一个空字符串
您得到的是空字符串还是空值?因为理想情况下,您的代码应该 return 一个空字符串,并且当我尝试相同的代码时,我按预期得到了 "raw" 字段的一个空字符串。
如果您想使用 "raw" 字段以 RFC 2822 格式和 base64url 编码的字符串获取整个电子邮件消息,请通过提供以下方式调用 readMessage 函数格式为 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
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' 属性时,它 returns 消息正文是正确的。但是如果我使用相同的 'raw' 属性资源如上,它 returns 一个 null value.What 是我代码中的错误吗?
Ballerina GmailConnector[1] 的 readMessage() 函数接受 4 个参数,其中 2 个是可选的。 format 和 metadataHeaders 参数是可选的。您也可以参考 Gmail API 文档 [2]。
在您的情况下,由于您没有为 format 传递任何值,您的 readMessage 请求将具有默认格式,即 "FORMAT_FULL" [3]。 API 文档[1] 中也有说明。因此,您从 Gmail API 获得的回复不会包含字段 "raw" 和 "raw" 连接器的 Message 资源的字符串字段将为空 [4]。因此,当您尝试以 msg["raw"].
访问它时,您会得到一个空字符串您得到的是空字符串还是空值?因为理想情况下,您的代码应该 return 一个空字符串,并且当我尝试相同的代码时,我按预期得到了 "raw" 字段的一个空字符串。
如果您想使用 "raw" 字段以 RFC 2822 格式和 base64url 编码的字符串获取整个电子邮件消息,请通过提供以下方式调用 readMessage 函数格式为 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