【问题标题】:Google Calendar Resource API谷歌日历资源 API
【发布时间】:2014-01-20 09:01:27
【问题描述】:
【问题讨论】:
标签:
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,然后得到结果。