1

クエリ(.Net Google Data APIを使用)を使用して、Googleサイトに存在するすべての利用可能なリスト、Webページ、お知らせ、ファイルキャビネットをリストしようとしています:

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

約ある場合。Google サイトに存在するアイテムが 500 未満の場合、正常に動作します。利用可能なすべてのページを一覧表示できます。

しかし、約のGoogleサイト。>500 アイテム (すべての添付ファイル、コメント、ページなどを含む) このクエリは、最初のチャンクに存在するアイテムのみを返します。この場合、次のチャンク URL は空であるため、Start Index プロパティを使用して次のチャンクを照会することができず、利用可能なすべてのページをここにリストできませんでした。

この問題を克服する方法を知っている人はいますか?前もって感謝します

4

1 に答える 1

1

同じ問題を調べたところ、Python YouTube API に関するこの質問で答えが見つかりました。

コンテンツ フィード クエリは、単一の結果のチャンクを返します。GetNextLink メソッドを使用して、次のチャンクがあればそれを取得できます。これについては、Data APIプロトコル リファレンスの「クエリ結果」で説明されています。

これは、前述の YouTube API の質問に対する回答に依存する Python ソリューション (Google Apps 用の 2 Legged OAuth を使用) です。

CONSUMER_KEY = 'some_key'
CONSUMER_SECRET = 'some_secret'
REQUESTOR_ID = 'some_id@' + 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)
于 2014-12-24T16:27:39.363 に答える