本地测试Google API客户端观看事件

时间:2015-09-28 21:33:17

标签: ruby-on-rails google-calendar-api google-api-client google-api-ruby-client

我正在使用google api ruby client向日历添加webhook,但我遇到了Google::Apis::ClientError: pushWebhookBadDomain

我已经设置了一个ngrok实例并在网站管理员工具上对其进行了验证,以便我可以将其作为允许的域添加到处理所有日历身份验证等的项目中。我找不到对该特定错误的任何引用所以我想知道是否有一些使用ngrok的时髦,如果有更好的方法可以在本地测试webhooks。

这是电话(为了清晰起见而浓缩),以防我做任何愚蠢的事情:

require 'google/apis/calendar_v3'
client = Google::Apis::CalendarV3::CalendarService.new
authorization = Signet::OAuth2::Client.new(
  :authorization_uri =>
    'https://accounts.google.com/o/oauth2/auth',
  :token_credential_uri =>
    'https://accounts.google.com/o/oauth2/token'
)
authorization.client_id = ENV['GOOGLE_CLIENT_ID']
authorization.client_secret = ENV['GOOGLE_CLIENT_SECRET']
authorization.grant_type = 'refresh_token'
authorization.refresh_token = refresh_token
authorization.fetch_access_token!
client.authorization = authorization

channel = Google::Apis::CalendarV3::Channel.new(address: success_callback_url, id: channel_id, type: "web_hook")
binding.pry
webhook = client.watch_event('primary', channel, single_events: true, time_min: Time.now.iso8601)

1 个答案:

答案 0 :(得分:3)

当您在AppEngine项目的Google Cloud Console中将域注册为允许域时,不应在域名前包含https://。您需要将其注册为xxxxxxx.ngrok.io。

我遇到了与您相同的问题,在删除https://添加允许的域后,我可以使用ngrok在我的本地计算机上接收推送通知。

如果有帮助,请告诉我。

BR, 乙