如何使用Gmail API将邮件标记为已读?
我收到了电子邮件的帖子
Thread thread = service.users().threads().get(userId, message.getThreadId()).execute();
Run Code Online (Sandbox Code Playgroud)
但它没有像gmail API网站那样的方法markRead.
使用threads.modify()或messages.modify()(取决于你想要做的范围)和removeLabelId"UNREAD".
https://developers.google.com/gmail/api/v1/reference/users/threads/modify
在 nodejs 示例中:
var google = require('googleapis');
var gmail = google.gmail('v1');
var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);
oauth2Client.credentials = JSON.parse(token);
google.options({ auth: oauth2Client }); // set auth as a global default
gmail.users.messages.modify({
'userId':'me',
'id':emailId,
'resource': {
'addLabelIds':[],
'removeLabelIds': ['UNREAD']
}
}, function(err) {
if (err) {
error('Failed to mark email as read! Error: '+err);
return;
}
log('Successfully marked email as read', emailId);
});
Run Code Online (Sandbox Code Playgroud)
当我到达这里以在 C# 中寻找这个答案时,这里是我的经验答案:
var gs = new GmailService(
new BaseClientService.Initializer()
{
ApplicationName = gmailApplicationName,
HttpClientInitializer = credential
}
);
var markAsReadRequest = new ModifyThreadRequest {RemoveLabelIds = new[] {"UNREAD"}};
await gs.Users.Threads.Modify(markAsReadRequest, "me", unreadMessage.ThreadId)
.ExecuteAsync();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10429 次 |
| 最近记录: |