【问题标题】:Google Calendar Resource API谷歌日历资源 API
【发布时间】:2014-01-20 09:01:27
【问题描述】:

我有一个现有的 Google Marketplace 应用,在安装后,它会发出各种调用以代表用户提取 Google 数据,并且运行良好。它确实使用了 Google Admin SDK,现在主要是 Directory API。

我想开始使用 Google 日历资源 API,但遇到了问题。现在,我的应用程序主要使用 2-legged 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 是否不支持通过市场的 2-legged OAuth1?我已经通过 OAuth2 Playground 尝试了相同的范围和 URL,它工作正常。我找不到旧的 OAuth1 Playground(已退役?)

【问题讨论】:

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


    【解决方案1】:

    您的标头似乎没有包含正确的授权。以下是使用 OAuth2 对我有用的方法:

      'Content-Type': 'application/atom+xml',
      'Authorization': 'Bearer ' + accessToken,
      'X-JavaScript-User-Agent': "Google APIs Explorer"
    

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

    【讨论】:

      【解决方案2】:

      KRH 来自Revision 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,然后得到结果。

      【讨论】:

        猜你喜欢
        • 2016-03-22
        • 2018-09-15
        • 2012-12-06
        • 1970-01-01
        • 2016-04-15
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        • 2017-08-30
        相关资源
        最近更新 更多