| #!/usr/bin/python2.4 |
| # -*- coding: utf-8 -*- |
| # |
| # Copyright 2010 Google Inc. All Rights Reserved. |
| |
| """Query with grouping against the shopping search API""" |
| |
| import pprint |
| |
| from apiclient.discovery import build |
| |
| |
| SHOPPING_API_VERSION = 'v1' |
| DEVELOPER_KEY = 'AIzaSyACZJW4JwcWwz5taR2gjIMNQrtgDLfILPc' |
| |
| |
| def main(): |
| """Get and print a feed of public products in the United States mathing a |
| text search query for 'digital camera' and grouped by the 8 top brands. |
| |
| The list method of the resource should be called with the "crowdBy" |
| parameter. Each parameter should be designed as <attribute>:<occurence>, |
| where <occurrence> is the number of that <attribute> that will be used. For |
| example, to crowd by the 5 top brands, the parameter would be "brand:5". The |
| possible rules for crowding are currently: |
| |
| account_id:<occurrence> (eg account_id:5) |
| brand:<occurrence> (eg brand:5) |
| condition:<occurrence> (eg condition:3) |
| gtin:<occurrence> (eg gtin:10) |
| price:<occurrence> (eg price:10) |
| |
| Multiple crowding rules should be specified by separating them with a comma, |
| for example to crowd by the top 5 brands and then condition of those items, |
| the parameter should be crowdBy="brand:5,condition:3" |
| """ |
| client = build('shopping', SHOPPING_API_VERSION, developerKey=DEVELOPER_KEY) |
| resource = client.products() |
| # The crowdBy parameter to the list method causes the results to be grouped, |
| # in this case by the top 8 brands. |
| request = resource.list(source='public', country='US', q=u'digital camera', |
| crowdBy='brand:8') |
| response = request.execute() |
| pprint.pprint(response) |
| |
| |
| if __name__ == '__main__': |
| main() |