我有一个Android应用,可以访问Gmail Atom收件箱Feed,以便对未读电子邮件进行只读访问(这就是我所需要的)。而且,它最近停止了工作。
正在使用 OAuth2 和 GoogleAuthUtil 。这是如何工作的,在服务中使用AsyncTask:
首先,获取一个令牌:
String scope = "oauth2:https://mail.google.com/mail/feed/atom/";
token = GoogleAuthUtil.getToken(context, accountName ,scope );
然后用它来阅读Feed:
HttpURLConnection connection = (HttpURLConnection) new URL(urlString).openConnection();
connection.addRequestProperty("Authorization", "Bearer " + token);
connection.connect();
//get the insputStream, read it, etc.
问题是这个工作大约。 1个月(2014年5月/ 6月)。该应用甚至已在GooglePlay上发布并拥有用户。 它在不同的设备,不同的帐户等上工作和测试。我不是100%确定它已停止在所有安装上工作,但我无法让它恢复为我自己和我的设备工作。< / strong>该应用访问了大约的Feed。每10-20分钟(根据用户设置)。
你知道为什么会这样吗?
由于几天,我仍然可以获得令牌,但响应只是未经授权(401)响应:
<HTML>
<HEAD><TITLE>Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1><H2>Error 401</H2>
</BODY>
</HTML>
等,没有结果。
经过一些研究,我知道需要生成一个客户端ID来访问各种谷歌API。我能够生成这样的ID。
我尝试使用该ID - 将其包含在范围内并从已签名的APK运行应用程序。 但是我找不到列表中的任何API (https://console.developers.google.com),可以说是GMAIL或ATOM FEED,或者与gmail有关的任何内容。所以我无法使用它。
任何帮助表示感谢。
编辑 - 已解决 谷歌解决了这个问题,更新了一些内容:-) - 现在再次运作。