我正在尝试使用 Google Sites API 来检索我域的所有站点的列表,而不仅仅是当前经过身份验证的用户具有读写/所有者访问权限的站点。据我所知,在当前的 API 中没有处理这个问题的工具。
但是,根据当前的 API 参考(https://developers.google.com/google-apps/sites/docs/1.0/reference/),我可以使用一个参数来包含用户至少可以“查看”的所有站点. 这与使用域管理员用户相结合似乎可以满足我的要求。
不幸的是,我无法让它工作。我使用的是 2-legged oAuth 方法,与此处的以下示例几乎相同:http://gdatatips.blogspot.ca/search/label/oauth,除了我使用的是网站提要。
我可以成功指定 xoauth_requestor_id=my.admin.user@domain.com 并检索站点列表。但是,如果我将 'include-all-sites' 参数添加到我的提要 url,即:
https://sites.google.com/feeds/site/mydomain.com/?include-all-sites=true
我收到以下错误:
未知的授权标头错误 401
还有另一种方法可以做到这一点吗?我找不到任何使用“include-all-sites”参数的文档或工作示例。
更新:
这是标题输出:
GET /feeds/site/mydomain.com/?include-all-sites=true HTTP/1.1
Host: sites.google.com
Accept: */*
Authorization: OAuth oauth_version="1.0", oauth_nonce="831c013d3d4c9c13b149dfd21e9b48bd", oauth_timestamp="1337274463", oauth_consumer_key="mydomain.com", xoauth_requestor_id="user%mydomain.com", oauth_signature_method="HMAC-SHA1", oauth_signature="%2Bq24MoAQJL4vCcz%2BLD1P1Cy4X48%3D"
Content-Type: application/atom+xml
GData-Version: 1.4
HTTP/1.1 401 Unknown authorization header
WWW-Authenticate: GoogleLogin realm="http://www.google.com/accounts/ClientLogin", service="jotspot"
Content-Type: text/html; charset=UTF-8
Date: Thu, 17 May 2012 17:07:43 GMT
Expires: Thu, 17 May 2012 17:07:43 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked