Gmail Atom Feed с 2-х ножной OAuth получить ошибку 401
У нас возникает проблема подачи атома Gmail с помощью двухстороннего OAuth, сообщение об ошибке «401 не авторизован».
Сообщение об ошибке, как показано ниже.
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
До прошлой недели у нас не было проблем с использованием Gmail Atom Feed. Начиная с этой недели, мы столкнулись с этой проблемой, даже несмотря на то, что у нас нет никаких изменений в отношении подачи атома Gmail и oauth. Сейчас эта проблема возникает не у всех пользователей (50 000 учетных записей), но эта проблема все больше и больше возрастает.
Похоже, что эта проблема вызвана стороны Google.
Есть ли у кого такая же проблема?
Исходный код как ниже.
private GoogleOAuthParameters mOauthParameters;
private OAuthSigner mSigner;
private final String SCOPE = "https://mail.google.com/mail/feed/atom";
GoogleService service;
String result = null;
mOauthParameters = new GoogleOAuthParameters();
mSigner = new OAuthHmacSha1Signer();
mOauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
mOauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
service = new GoogleService("gmail","feed");
service.setOAuthCredentials(mOauthParameters, mSigner);
service.setConnectTimeout(timeOut);
service.setReadTimeout(timeOut * 5);
GDataRequest request = service.createFeedRequest(new URL(SCOPE +"?xoauth_requestor_id=" + email));
request.execute();
InputStream is = null;
try {
is = request.getResponseStream();
StringBuffer out = new StringBuffer();
byte[] buffer = new byte[4094];
int readSize;
while ( (readSize = is.read(buffer)) != -1) {
out.append(new String(buffer, 0, readSize));
}
result = out.toString();
} catch (Exception e) {
throw e;
} finally {
is.close();
}
Мне нужна ваша помощь.
Пожалуйста, проверьте наш источник или другой образец для подачи атома gmail с 2-сторонним OAuth.
С уважением.