· 6 years ago · Jan 20, 2019, 07:32 PM
1def search(request):
2 parser = optparse.OptionParser()
3 parser.add_option('-c', '--consumer_key', dest='my_consumer_key_goes_here', help='OAuth consumer key (REQUIRED)')
4 parser.add_option('-s', '--consumer_secret', dest='my_consumer_secret_goes_here', help='OAuth consumer secret (REQUIRED)')
5 parser.add_option('-t', '--token', dest='my_token_goes_here', help='OAuth token (REQUIRED)')
6 parser.add_option('-e', '--token_secret', dest='my_token_secret_goes_here', help='OAuth token secret (REQUIRED)')
7 parser.add_option('-a', '--host', dest='host', help='Host', default='api.yelp.com')
8 options, args = parser.parse_args()
9
10 # search stuff?
11 if 'q' in request.GET and request.GET['q']:
12 q = request.GET['q']
13 parser.add_option('-q', '--term', dest=q, help='Search term')
14 url_params = {}
15 if options.q:
16 url_params['term'] = options.q
17 # Sign the URL
18 consumer = oauth2.Consumer(consumer_key, consumer_secret)
19 oauth_request = oauth2.Request('GET', url, {})
20 oauth_request.update({'oauth_nonce': oauth2.generate_nonce(),
21 'oauth_timestamp': oauth2.generate_timestamp(),
22 'oauth_token': token,
23 'oauth_consumer_key': consumer_key})
24
25 token = oauth2.Token(token, token_secret)
26 oauth_request.sign_request(oauth2.SignatureMethod_HMAC_SHA1(), consumer, token)
27 signed_url = oauth_request.to_url()
28 else:
29 message = 'You submitted an empty form.'
30 #return HttpResponse(message)
31 print 'Signed URL: %sn' % (signed_url,)
32
33 # Connect
34 try:
35 conn = urllib2.urlopen(signed_url, None)
36 try:
37 response = json.loads(conn.read())
38 finally:
39 conn.close()
40 except urllib2.HTTPError, error:
41 response = json.loads(error.read())
42
43 return response
44
45 response = request(options.host, '/v2/search', url_params, options.consumer_key, options.consumer_secret, options.token, options.token_secret)
46 print json.dumps(response, sort_keys=True, indent=2)