[英]Android Gmail API get message 403 error
为 Android 实现 Gmail API 时出错。 我的范围:
private static final String[] SCOPES = { GmailScopes.GMAIL_LABELS, GmailScopes.GMAIL_COMPOSE,
GmailScopes.GMAIL_INSERT, GmailScopes.GMAIL_MODIFY, GmailScopes.GMAIL_READONLY, GmailScopes.MAIL_GOOGLE_COM };
我可以获取消息 ID:
Log.i("messages.get(0)", messages.get(0).toPrettyString());
在 Android 监视器中:
I/messages.get(0): {"id": "1588ae7e991a62f2","threadId" : "1588ae7e991a62f2"}
但是当我尝试收到某些消息时:
getGmailMessage(mService, user, "1588ae7e991a62f2");
public static Message getGmailMessage(Gmail service, String userId, String messageId) throws IOException {
Message message = service.users().messages().get(userId, messageId).execute();
System.out.println("Message snippet: " + message.getSnippet());
System.out.println("Message getHeaders: " + message.getPayload().getHeaders().get(0));
System.out.println("Message toPrettyString: " + message.getPayload().toPrettyString());
return message;
}
我收到一个错误:
发生以下错误:403 Forbidden { "code" : 403, "errors" : [ { "domain" : "global", "message" : "Metadata scope does not allow format FULL", "reason" : "forbidden" } ], "message" : "元数据范围不允许格式为FULL" }
当我在新项目中运行我的代码时,一切正常。 为什么?
这是 Gmail API 中另一个令人失望的设计。 我通过以下步骤解决了这个问题:
希望这可以帮助你们。
尝试将GmailScopes.GMAIL_METADATA
添加到范围或只使用GmailScopes.all()
方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.