2013-05-03 56 views
1

我想通過使用查詢(使用.Net Google Data API)列出所有可用列表,網頁,公告,文件櫃中的所有可用列表,網頁,公告,文件櫃:Google Sites API無法返回不在第一個區塊的條目

https://sites.google.com/feeds/content/site/mysite1?kind=filecabinet,listpage,webpage,announcementspage」。

如果有約。 < 500個項目出現在Google網站上,然後它正常工作。能夠列出所有可用的頁面。

但是,Google協作平臺約爲。 > 500個項目(包括所有附件,評論,頁面等),這個查詢只返回那些出現在第一個塊中的項目。在這種情況下,下一個塊URL爲空,因此我無法使用「開始索引」屬性查詢下一個塊,並且未能在此處列出所有可用的頁面。

有誰知道如何解決這個問題? 在此先感謝

回答

1

展望同樣的問題,我找到了有關Python YouTube API的this question的答案。

內容Feed查詢返回單個結果塊。您可以使用GetNextLink方法檢索下一個塊(如果有的話)。這在「查詢結果」下的Data API protocol reference中進行了描述。

這是一個Python解決方案(針對Google Apps的Legacy OAuth),它依賴於前面提到的YouTube API問題的答案。

CONSUMER_KEY = 'some_key' 
CONSUMER_SECRET = 'some_secret' 
REQUESTOR_ID = '[email protected]' + CONSUMER_KEY 
DOMAIN = 'some_domain' 

def content_generator(client): 
    content_feed = client.GetContentFeed() 
    while content_feed is not None: 
     for content in content_feed.entry: 
      yield content 
     next_link = content_feed.GetNextLink() 
     if next_link is None: 
      content_feed = None 
     else: 
      content_feed = client.GetContentFeed(next_link.href) 

client = gdata.sites.client.SitesClient(source='some_source', site=SITE, domain=DOMAIN) 
client.auth_token = gdata.gauth.TwoLeggedOAuthHmacToken(CONSUMER_KEY, CONSUMER_SECRET, REQUESTOR_ID) 

for page in content_generator(client): 
    # do something 
    print(page.page_name)