问题标签 [google-mirror-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1009 浏览

google-mirror-api - 如何测试镜像 API 订阅

https callbackUrl 的限制和整个订阅的性质使得这看起来似乎只能通过可公开访问的 url 来完成。

到目前为止,我遇到了两种可能的解决方案,可以使本地开发/调试更容易。

首先是谷歌提供的订阅代理服务。此解决方法实质上允许您删除 SSL 限制和对自定义 URL 的代理订阅回调。

我发现在本地进行开发的第二种也是最有用的方法是将订阅回调请求(例如来自可公开访问的服务器)捕获到日志中,然后使用 curl 在本地/开发机器上使用类似的东西重现该请求:

由于请求有时可能很大,或者您可能想要测试多种回调类型,我还发现将下标请求的 JSON 放入各种文件(例如:)timeline-respond.json然后运行很有用

我很好奇其他人在本地测试他们的应用程序订阅。

0 投票
1 回答
58 浏览

google-mirror-api - 是否可以指定时间线附件作为参考

是否可以指定时间线附件参考。我不想重新发送相同的视频,有没有办法将时间线项目与之前发送的时间线项目捆绑在一起,以便可以毫无延迟地播放。或者“更新时间线”是否也一样?

0 投票
1 回答
303 浏览

perl - refresh_token 无效凭据错误

我难住了。我正在尝试手动获取刷新令牌以使用 Perl 在 Mirror API 上为我加载访问令牌,并且它不断给我凭据错误。当我在 PHP 示例代码中加载确切的 HTTP 请求(我已经打印出 HTTP 进行比较)时,相同的 refresh_token 工作正常。

这是我的 Perl HTTP 请求:

*POST https://accounts.google.com/o/oauth2/token 主机:accounts.google.com 用户代理:libwww-perl/6.02 内容长度:175 内容类型:application/x-www-form- urlencoded client_id=client_id_goes_here&client_secret=client_secret_goes_here&refresh_token=refresh_token_goes_here&grant_type=refresh_token*

这是同一个 refresh_token 上的 PHP:

*POST /o/oauth2/token HTTP/1.1 内容类型:application/x-www-form-urlencoded 内容长度:175 client_id=client_id_goes_here&client_secret=client_secret_goes_here&refresh_token=refresh_token_goes_here&grant_type=refresh_token*

我的 Perl 看起来像这样:

帮助!:-)

0 投票
1 回答
1776 浏览

python - 尝试刷新令牌时获取 invalid_grant

当 OAuth2Credential 对象尝试刷新其 access_token 时,有时会收到 invalid_grant 错误,然后无法刷新。我使用的代码基于 Google 的 python API 和 Mirror API 示例。

背景:

  • 使用oauth2client模块进行身份验证和 OAuth2Credential 对象。
  • 将 OAuth2Credential 对象腌制和 base64 存储到数据库中,就像 Google 自己的示例代码一样
  • 使用apiclient模块调用 Mirror API
  • 此代码在 3 个不同的服务器上运行,在尝试发送时都出现相同的问题
  • 我要求的范围是"https://www.googleapis.com/auth/glass.timeline""https://www.googleapis.com/auth/userinfo.profile"
  • 我可以确认 access_type 设置为“离线”
  • 我要求将approval_prompt 设为“强制”以防万一

以下是用于调用镜像 API 的代码:

调用服务时,它可能会发出 401,这意味着需要刷新 access_token。然后它调用刷新方法,除了 AccessTokenRefreshError 和错误invalid_grant。此时,凭证就如同废话了,因为 access_token 已过期,而 refresh_token 只会报同样的错误。

我已经看到页面说这可能是由于 NTP 问题而发生的,但我已经确认(甚至切换了 NTP 服务器)我的服务器是同步的。另一个记录在案的可能性是,在它们被回收之前只能存在 25 个刷新令牌,但我已经在 Credential 对象上实现了一个 store() 方法,因此当它被刷新时,新的凭证被保存在适当的位置(我可以确认这有效因为我在刷新时看到数据库中的新信息)。

由于我无法获得用户的凭据来开始按需展示此问题,因此除了“等待一段时间”之外,我无法解释重新创建问题的任何其他条件。我已经看到这个问题在验证并发送一个电话后不久就发生了,一直到一百个电话后的一周时间。

目前解决问题的唯一方法是要求用户重新授权,但这不是解决方案,因为我希望在没有用户交互的情况下离线使用 api。我也无法通知用户他们需要重新授权。

0 投票
1 回答
186 浏览

google-mirror-api - 如何确定用户是否真的拥有 Glass

我正在为 Glass 编写一个相当复杂的应用程序,我担心用户进来、注册和使用我的 AppEngine 帐户的资源,即使他们没有 Glass 并且不会从中受益。Mirror API 目前是否有任何方法可以实际确定用户是否拥有 Glass?

0 投票
1 回答
275 浏览

google-mirror-api - 《纽约时报》如何在他们的 Glass Timeline 卡片上的“刚刚”时间指示器旁边显示他们的图标?

我正在构建一个谷歌眼镜应用程序,并注意到纽约时报在每张卡片右下角的“Just Now”时间指示器的右侧有他们的纽约时报小图标。他们是怎么做到的?这是我可以在 API 控制台中上传的内容,还是我必须在每个 HTML 页面卡片中手动将其添加为 HTML?以及如何在 Glass 浏览器中执行此操作?我在模板中看不到任何示例。任何帮助表示赞赏!

0 投票
2 回答
301 浏览

java - 如何固定一捆卡片

由于几个时间线项目共享相同的捆绑 ID,我创建了捆绑封面:

它通过正确捆绑但 isPinned = false 的时间线。

我尝试在时间轴操场上将 isPinned 字段更新为 true,但它保持为 false。

是否可以固定捆绑包?

0 投票
2 回答
393 浏览

python - 谷歌眼镜不在 App Engine 上

有没有人试图让玻璃器皿在 App Engine 之外的服务器上运行,例如 Tomcat?

我正在尝试运行一个玻璃器皿应用程序,我宁愿避免使用 Google App Engine 本身。我在处理这个问题时遇到了困难,我将使用 Tomcat 作为我的服务器。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
289 浏览

google-mirror-api - 限制对 Mirror API 的调用次数的最佳实践

我和我想象的其他人一样,每天有 1000 次 Mirror API 调用的礼貌限制。

我看到有一个看起来很有前途的批处理工具,但它似乎只能批处理对单个凭据的请求。因此,即使是一位客户,每 60 秒向 API 推送一次也将是 1440 个请求/天。理想情况下,30 秒是我想要的。每天 2880 个请求将乘以客户数量。它会很快变得非常大。

我可能会遗漏一些东西,但我看不到解决办法。

如果它可用,我可以将 30 秒内所有客户端的所有更新整合到一条巨大的消息中......

是否有更好的设计模式让卡片与实时变化的遥测保持同步?

0 投票
1 回答
483 浏览

google-mirror-api - 本地部署 Glass Java 入门项目,AuthFilter ClassNotFoundException

我已经完全按照 Java 快速入门中的步骤进行操作。尝试在本地部署时,我得到以下堆栈跟踪:

关于我哪里出错的任何想法?我已将适当的值复制到oauth.propertiesand appengine-web.xml

一些系统信息(运行 Ubuntu)

Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)

Java 版本:1.6.0_27,供应商:Sun Microsystems Inc.

默认语言环境:en_US,平台编码:UTF-8

操作系统名称:“linux”,版本:“3.2.0-45-generic”,arch:“amd64”,家族:“unix”

编辑:部署 Python 快速入门也不起作用。堆栈跟踪:

我已经仔细检查了我的客户 ID,甚至生成了新的 ID 并删除了旧的 ID,一切似乎都井井有条。