gpt4 book ai didi

java - 如何使用 Java 使用 Gmail-API 解码消息的标题?

转载 作者:行者123 更新时间:2023-11-29 20:05:20 25 4
gpt4 key购买 nike

我正在 android studio 中处理一个 fragment ,其目的是显示收件人/发件人、主题和消息正文。到目前为止,我能够检索、解码和显示 body 。我尝试对 header 使用类似的方法,但由于某种原因它没有正确解码,或者我的方法调用没有获得正确的信息。这是我正在使用的代码:

     String user = "me";
String query = "in:inbox is:unread";
textView.setText("Inbox");
ListMessagesResponse messageResponse =
mService.users().messages().list(user).setQ(query).setMaxResults(Long.valueOf(1)).execute();

List<Message> messages = messageResponse.getMessages();

for(Message message : messages){
Message message2 = mService.users().messages().get(user, message.getId()).execute();

//Get Headers
byte[] headerBytes = Base64.decodeBase64(message2.getPayload().getParts().get(0).getHeaders().get(0).getName().toString().trim()); // get headers
String header = new String(headerBytes, "UTF-8");

//Get Body
byte[] bodyBytes = Base64.decodeBase64(message2.getPayload().getParts().get(0).getBody().getData().trim().toString()); // get body
String body = new String(bodyBytes, "UTF-8");

messageList.add(header);
messageList.add(body);
}
return messageList;

//get body 下的部分有效。但是 //Get Headers 下的部分返回带有奇怪符号的数据,其中包括内部带有白色问号的黑色菱形和随机顺序的字母。我已经在 headerBytesBase64.decodeBase64 语句中尝试了许多不同的方法调用组合和顺序,但未能成功。有什么我想念的吗?

编辑:我查看了 google 开发者网站上的 gmail-api 文档,但我仍然对标题信息的存储方式以及如何检索特定内容(如收件人、发件人和主题)感到困惑。这可能是我的问题,因为我可能没有定位正确的数据。

最佳答案

如果我list messagesget第一个,我们可以看到消息的样子:

请求

format = metadata
metadataHeaders = From,To,Subject
fields = payload/headers

GET https://www.googleapis.com/gmail/v1/users/me/messages/15339f3d12042fec?format=metadata&metadataHeaders=To&metadataHeaders=From&metadataHeaders=Subject&fields=payload%2Fheaders&access_token={ACCESS_TOKEN}

响应

{
"payload": {
"headers": [
{
"name": "To",
"value": "Emil <emtholin@gmail.com>"
},
{
"name": "From",
"value": "\"BernieSanders.com\" <info@berniesanders.com>"
},
{
"name": "Subject",
"value": "5,000,000"
}
]
}
}

如您所见,您要查找的值位于 header 中。您只需用 Java 将它们分类即可。 header 不像正文那样编码,因此无需进行任何解码。

关于java - 如何使用 Java 使用 Gmail-API 解码消息的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com