从 Android 应用程序使用 OAuth2 访问 Gmail Atom feed 停止工作

2024-02-02

我有一个 Android 应用程序,它可以访问 Gmail Atom 收件箱提要,以只读方式访问未读电子邮件(这就是我所需要的)。而且,它最近停止工作了。

它正在使用OAuth2 and 谷歌验证工具。这是它的工作原理,在服务中使用 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% 确定它在所有安装上停止工作,但我无法让它恢复为我自己和我的设备工作。该应用程序访问了大约的提要。每 10-20 分钟一次(根据用户设置)。

您知道为什么会发生这种情况吗?

几天来,我仍然可以获取令牌,但响应仅未经授权 (401)回复:

<HTML>
<HEAD><TITLE>Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1><H2>Error 401</H2>
</BODY>
</HTML>
  • I tried:
    • 每次都使令牌无效
    • 摆弄范围
    • 撤销我的帐户设置中的访问权限
    • 重新安装
    • 更新 Google-Play-Services 库

等等,没有结果。

经过一些研究,我知道需要生成一个 client-id 来访问各种 google API。我能够生成这样的ID。

我尝试使用该 ID - 将其包含在范围中并从签名的 APK 运行应用程序。但我在列表中找不到任何 API (https://console.developers.google.com https://console.developers.google.com) 可以是 GMAIL 或 ATOM FEED,或者任何与 gmail 相关的内容。所以我无法使用它。

任何帮助表示赞赏。

编辑 - 已解决谷歌解决了这个问题,更新了一些东西:-) - 现在它又可以工作了。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Android 应用程序使用 OAuth2 访问 Gmail Atom feed 停止工作 的相关文章

随机推荐

  • 将 float64 数组转换为 float32 数组

    我有一个 float64 数组 想要将每个值转换为 float32 我试过了 What I have features64 120 float64 What I ve tried features32 120 float32 feature
  • 如何从命令行构建android apk?

    如何从命令行构建 APK 文件 我试过了 MSBuild myProject dproj p Config Release p Platform Android 但不会生成 APK 文件 只生成 so 文件 一些实验表明 建议的各种行动方案
  • 在 TypeScript 中使用符号作为对象键类型

    我正在尝试用 a 定义一个对象symbol https developer mozilla org en US docs Web JavaScript Reference Global Objects Symbol作为 key type 因
  • #ifdef DEBUG 与 #if DEBUG

    当使用编译器指令时 我不清楚以下两个代码片段中哪一个是正确 首选以及原因 似乎我见过的大多数开发人员和开源项目都使用第一个 但我也看到第二个也经常使用 ifdef DEBUG self doSomethingOnlyWhenDebuggin
  • 为什么应该使用基于文档的数据库而不是关系数据库?

    为什么我应该使用基于文档的数据库 如 CouchDB 而不是使用关系数据库 是否存在基于文档的数据库比关系数据库更适合的典型应用程序或领域 也许你不应该 第二个最明显的答案是 如果您的数据不相关 则应该使用它 这通常表现为没有简单的方法将数
  • Vertx JDBC 客户端 queryWithParams - 如何添加列表?

    我有带条件的 SQL 查询currency in 我正在使用 vertx JDBC 客户端queryWithparams方法 它接收 JsonArray 中的查询参数 我怎样才能传递我的可能列表currency查询的值 我试过new Jso
  • 购物车 $_SESSION 问题

    我正在开发一个基本的购物车 但是 SESSION 变量似乎未正确存储或访问 例如 如果您前往它将显示项目名称 但是在没有任何 GET 变量的情况下刷新 cart php 时 它不会返回任何内容 我究竟做错了什么
  • 如何使用javascript或html打开手机chrome浏览器

    我有两个问题 我要这个 我想使用 javascript 或 html 在其他 Android 移动网络应用程序 例如 naver firefox 等 上打开带有 url 的 chrome 浏览器 所以例子 如果用户在移动网络应用程序上单击
  • 在一台机器上运行多个 MySQL 服务器

    我们可以在一台机器上运行多个 MySQL 服务器吗 Thanks 是的 您只需在单独的端口上运行它们并将它们指向不同的 lib 目录以获取其数据 这是一个很好的参考 http dev mysql com doc refman 5 1 en
  • ASP.NET C# 大文件上传时出现 OutofMemoryException

    我有以下文件上传处理程序 public class FileUploader IHttpHandler public void ProcessRequest HttpContext context HttpRequest request c
  • 如何在表过滤器中显示“未找到记录”消息

    我根据两个 tds 在我的桌子上应用过滤器 过滤器正在工作 但如果没有值匹配 我想显示 未找到记录 消息 这是一个示例演示 filter click function var tdScoring tdEarning var scoring
  • AttributeError:“NoneType”对象没有属性“dpi_scale_trans”

    通过 StackOverflow 检查我遇到的上述错误的可能解决方案后 我发现一些解决方案无法解决这个特定问题 下图显示了尝试在图上绘制多个轴时遇到的错误和获得的不需要的图 This is an image of the expected
  • 错误模板设计

    似乎我在这个网站上读到了关于这个问题的另一个问题 答案 但我不记得答案是什么 现在我找不到原始帖子 我不喜欢 WPF 中的默认错误模板 我了解如何更改此错误模板 但是 如果我将一些内容添加到文本框的末尾 则文本框的大小不会改变 并且添加的内
  • Collections.shuffle() 真的足够随机吗?实际例子似乎否定了这个说法

    我有 1000 个独特的对象java util List 每个都引用一个图像 1000 个列表中的每个图像都是唯一的 现在我想对它们进行洗牌 以便我可以使用前 20 个对象并将它们呈现给网站用户 然后 用户可以单击 随机播放 按钮 然后我再
  • Cordova 应用程序中的触发事件

    我正在尝试触发事件 backbutton pause resume等 从浏览器手动在cordova中 用于调试 我按照以下方式进行 window trigger backbutton 当我们使用注册事件处理程序时 document on b
  • 如何使 Selenium 不等待整个页面加载,其脚本速度很慢?

    硒driver get url 等到整页加载 但是抓取页面会尝试加载一些无效的 JS 脚本 所以我的 Python 脚本等待它并且几分钟后不起作用 这个问题可能出现在网站的每个页面上 from selenium import webdriv
  • Javascript 数组和 Meteor 会话

    我做了一个有趣的观察 当尝试更新存储在 Meteor 会话存储中的数组时 以下代码将不会传播更改 var tags Session get Tags tags push a Session set Tags tags 但是如果我改变第一行来
  • 如何检测 tcp 连接是否已从 ssl 连接转发?

    我正在处理的具体场景是尝试连接到 AWS 弹性负载均衡器后面的 websocket 连接 同时强制使用 https ssl 而不是 http tcp 要启用从 http s 的 TCP SSL 升级 负载均衡器上的协议必须在端口 80 上设
  • 如何防止 NULL 值插入到 Jackson 中的 ObjectNode

    我希望杰克逊在将空值放入 ObjectNode 实例时忽略它们 我知道如何在序列化 pojo 时防止空值 这里我手动将键 值放入 ObjectNode 实例中 并且我希望杰克逊在值为空时忽略要忽略的键 值 例如 objectNode put
  • 从 Android 应用程序使用 OAuth2 访问 Gmail Atom feed 停止工作

    我有一个 Android 应用程序 它可以访问 Gmail Atom 收件箱提要 以只读方式访问未读电子邮件 这就是我所需要的 而且 它最近停止工作了 它正在使用OAuth2 and 谷歌验证工具 这是它的工作原理 在服务中使用 Async