Advertisement
Guest User

Flower_Power_Indigo

a guest
May 6th, 2015
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. import datetime
  2. import urllib, urllib2, os, pwd  ## added pwd
  3. import simplejson as json  ## changed
  4.  
  5. client_id = "user"
  6. client_secret = "secret"
  7. username = "user"
  8. password = "password"
  9. basename = "https://apiflowerpower.parrot.com"
  10.  
  11. oauth_bearer = {}
  12.  
  13. def api_json(url, params, method='GET', headers={}):
  14.    request = URLRequest(basename+url, params, method, headers=headers)
  15.    request.add_header('Accept-Language', 'en_us')
  16.    result = urllib2.urlopen(request)
  17.  
  18.    result_string = result.read()
  19.    return json.loads(result_string)
  20.    
  21.    
  22. def URLRequest(url, params, method="GET", headers={}):
  23.    if method == "POST":
  24.       return urllib2.Request(url, headers=headers, data=urllib.urlencode(params))
  25.    else:
  26.       return urllib2.Request(url + "?" + urllib.urlencode(params),headers=headers)
  27.  
  28. def test_api_and_dump_to_json(key, url):
  29.    json_data = api_json(url, {}, headers=oauth_bearer, method='GET')
  30.    dump = json.dumps(json_data, indent=4, sort_keys=True)
  31.    data = ('"instruction_key":', dump["locations"]['air_temperature']['instruction_key'],"testoutput")
  32.  
  33. # first get OAuth token
  34. result = api_json('/user/v1/authenticate', {'grant_type':'password','client_id':client_id,'client_secret':client_secret,'username':username, 'password':password}, method='POST')
  35. access_token = result['access_token']
  36. oauth_bearer = {'Authorization':'Bearer '+access_token}
  37.  
  38. # user data : sync (garden_locations and sensors) and statuses.
  39. for key,url in (
  40.    ('api-1.28-status','/sensor_data/v1/garden_locations_status'),
  41.    ):
  42.    test_api_and_dump_to_json(key,url)
  43.    indigo.server.log(data,"testoutput")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement