【发布时间】:2014-08-12 06:16:23
【问题描述】:
我们遇到了带有 2-legged OAuth 的 Gmail atom 提要问题,错误消息是“401 未授权”。
错误信息如下所示。
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
直到上周,我们在使用 Gmail atom 提要时还没有遇到任何问题。从本周开始,即使我们对 Gmail atom 提要和 oauth 没有任何更改,我们也遇到了这个问题。 现在,并非所有用户(50,000 个帐户)都会出现此问题,但此问题越来越多。
看来这个问题是谷歌这边造成的。
有人遇到同样的问题吗?
源代码如下。
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();
}
我需要你的帮助。
请查看我们的源代码或其他示例,了解带有 2-legged OAuth 的 gmail atom 提要。
问候。
【问题讨论】:
-
恐怕我无法帮你解决这个问题,但我也遇到了这个问题。与您不同,我使用 OAuth 2.0 和服务帐户让我的应用程序代表我们的用户执行操作(基本上它的 OAuth 2.0 相当于 2-legged OAuth 1.0),我看到的错误消息与您报告的完全相同.当我记录所有失败时,这很混乱,现在基本上都失败了!已向 Google 发了推文,但我怀疑我会得到回复...
-
Gmail-Notifier 也有同样的问题。 github.com/jashephe/Gmail-Notifier/issues/20
-
我有同样的问题,即使是 google oauth 游乐场也有问题。
-
我也有同样的问题,你可以看看:http://stackoverflow.com/questions/24366704/access-to-gmail-atom-feed-with-oauth2-from-android-app-stopped-working 有人向谷歌报告过吗? 编辑 - 2014 年 7 月 1 日解决
-
现在,问题已在我们的域中解决。
标签: google-api gmail google-oauth google-api-java-client google-oauth-java-client