Google api Google Webhooks获取此错误:pushInvalidTtl:通道的ttl值无效

Google api Google Webhooks获取此错误:pushInvalidTtl:通道的ttl值无效,google-api,unix-timestamp,webhooks,Google Api,Unix Timestamp,Webhooks,当尝试订阅Google Sheets webhook时,我设置了过期时间,但收到错误: pushInvalidTtl:通道-1477712661的ttl值无效 这是我正在打的电话: Google::Apis::DriveV3::Channel.new( id: self.id, address: "https://#{ENV['DOMAIN']}/api/google/webhook", type: "web_hook", resource_id: resource_id,

当尝试订阅Google Sheets webhook时,我设置了过期时间,但收到错误:

pushInvalidTtl:通道-1477712661的ttl值无效

这是我正在打的电话:

Google::Apis::DriveV3::Channel.new(
  id: self.id,
  address: "https://#{ENV['DOMAIN']}/api/google/webhook",
  type: "web_hook",
  resource_id: resource_id,
  expiration: (Time.current + 99.years).to_i
)

Google希望Unix时间戳以毫秒为单位,当过期设置为这样时,上面的调用有效:

Google::Apis::DriveV3::Channel.new(
  id: self.id,
  address: "https://#{ENV['DOMAIN']}/api/google/webhook",
  type: "web_hook",
  resource_id: resource_id,
  expiration: (Time.current + 1.week).to_i * 1000
}

此外,Google不允许您订阅webhook超过一周。

Google希望Unix时间戳以毫秒为单位,当过期设置为这样时,上述调用有效:

Google::Apis::DriveV3::Channel.new(
  id: self.id,
  address: "https://#{ENV['DOMAIN']}/api/google/webhook",
  type: "web_hook",
  resource_id: resource_id,
  expiration: (Time.current + 1.week).to_i * 1000
}

此外,Google不允许您订阅webhook超过一周。

API的最大过期时间似乎各不相同。根据我对admin.directory.users API(2018年)的经验,它需要6个小时。任何超过此时间的内容都将被默默忽略,并被视为6小时,这也是默认值。非常短的ttl将导致一个神秘的错误,如“通道-1523462813的ttl值无效”。文档缺失、错误或相互矛盾。干得好,谷歌@jelder上述解决方案对我有效,但到期时间不是很清楚。似乎财产在5分钟内到期。有人知道是否可以将过期时间延长到数小时/天甚至数周吗?如果没有,每个人如何才能更新此物业?我曾考虑过使用cronjob,但它似乎必须每隔几分钟更新一次,这没有多大意义。最大过期时间似乎因API而异。根据我对admin.directory.users API(2018年)的经验,它需要6个小时。任何超过此时间的内容都将被默默忽略,并被视为6小时,这也是默认值。非常短的ttl将导致一个神秘的错误,如“通道-1523462813的ttl值无效”。文档缺失、错误或相互矛盾。干得好,谷歌@jelder上述解决方案对我有效,但到期时间不是很清楚。似乎财产在5分钟内到期。有人知道是否可以将过期时间延长到数小时/天甚至数周吗?如果没有,每个人如何才能更新此物业?我本来想找份工作,但似乎每隔几分钟就得换一次,这没什么意义。