GMail API自4月11日起停止使用Ruby客户端



谷歌在2020年4月11日对GMail API进行了突破性的更改吗?

我们有一个ruby web应用程序,它也有一个Chrome扩展。(相当旧,ruby 2.1.0(,它使用谷歌api客户端版本0.6.4,到目前为止运行良好,但自4月11日以来,该应用程序停止了工作,所有对GMail api的调用都失败了,出现404错误。

为了提供线索,我们有一个库,我们从中调用谷歌客户端来执行操作,类似于以下内容:

def thread_metadata(id)
@metadata ||= execute(gmail_api.users.threads.get,
{
'collection' => 'public',
'userId' => 'me',
'id' => id,
'format' => 'metadata',
'metadataHeaders' => 'Subject'
}
)

然而,我们从谷歌得到的回复是404,并显示了这样的消息:

在该服务器上找不到他请求的URL/discovery/v1/apis/gmail/v1/gmail/v1/users/me/threads/16365500056684b0?collection=public&format=full。这就是我们所知道的。

我不知道出了什么问题,除了从4月11日开始突然出现的404错误。

您需要更新google-api-clientgem,从v0.8.6起,他们更改了baseUrl的请求位置。据推测,直到最近,旧宝石仍在使用的路径没有改变。

用于生成URI的method_base返回一些不同于0.8.6之前的内容:

irb(main):046:0> gmail_api.method_base
=> #<Addressable::URI:0x3ff4ff4e319c URI:https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest>

在0.8.6+中:

irb(main):009:0> gmail_api.method_base
=> #<Addressable::URI:0x3ff97faf4610 URI:https://www.googleapis.com/>

最新更新