Google日历资源API

时间:2014-01-02 20:12:00

标签: google-calendar-api google-admin-sdk

我有一个现有的Google Marketplace应用程序,在安装后会进行各种调用以代表用户提取Google数据,并且运行正常。它确实使用Google Admin SDK,现在主要使用Directory API。

我想开始使用Google Calendar Resource API,但我遇到了麻烦。现在,我的应用程序主要使用2脚OAuth1(OAuth2即将推出,希望如此)。我已将范围https://apps-apis.google.com/a/feeds/calendar/resource/添加到我的测试应用程序清单中。但是,任何获取信息的调用(“https://apps-apis.google.com/a/feeds/calendar/resource/2.0/”)都会失败并显示“未知授权标头”。使用相同客户端类的其他调用可以正常工作,包括Directory API。

日历资源API是否不支持通过市场的双腿OAuth1?我通过OAuth2 Playground尝试了相同的范围和URL,它运行正常。我找不到旧的OAuth1游乐场(退役?)

2 个答案:

答案 0 :(得分:1)

来自KRHRevision 2解决方案:


确切的代码很难分享,因为它的互连类等等,但这里基本上是使用Ruby Signet客户端库生成客户端的。

    oauth_args = {
      :authorization_uri => "https://www.google.com/accounts/OAuthAuthorizeToken",
      :token_credential_uri =>"https://www.google.com/accounts/OAuthGetAccessToken",
      :client_credential_key => config.google_marketplace_consumer_key
      :client_credential_secret => config.google_marketplace_consumer_secret
  }
  client = Signet::OAuth1::Client.new(oauth_args)
  client.two_legged = true
  client.requestor_id = owner.email
  client.get(:uri => 'https://apps-apis.google.com/a/feeds/calendar/resource/2.0/<test domain>')

结果返回:

Signet::AuthorizationError: Authorization failed.  Server message:
<HTML>
<HEAD>
<TITLE>Unknown authorization header</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unknown authorization header</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

请注意,我可以使用完全相同的代码并调用Directory API,然后获得结果。

答案 1 :(得分:0)

您的标头看起来不包含正确的授权。以下是使用 OAuth2

对我有用的内容
  'Content-Type': 'application/atom+xml',
  'Authorization': 'Bearer ' + accessToken,
  'X-JavaScript-User-Agent': "Google APIs Explorer"

其中accessToken是一个变量,用于存储具有API权限的管理员的访问令牌,即superadmin