25-01-2018, 21:29 PM
Tips:
Wat goed helpt om te achterhalen hoe de interactie werkt, is om bijvoorbeeld de browser "Chrome" de debug functie (F12) te starten.
Hierin kunt u precies achterhalen welke API-calls er worden gedaan met de bijbehorende JSON-strings.
Bij mij werkt de onderstaande URL (met URL-encoding) in een webbrowser om te testen:
http://beeclear.local/bc_login?username=...dpZQ%3D%3D
(beeclear/energie)
Ik heb dan wel session token security uit gezet.
Als het goed is staat dat in de API documentatie (security).
Username en password moeten base64 encoded worden.
///////////API-DOC//////////////////
13B. Enable/disable Security (Session token security)
Explanation: Sets / Disables session security.
Command : http://{BeeClear}/bc_security?set=off
http://{BeeClear}/bc_security?set=on
Returns :
{"info":"nok"} or
{"info":"ok"}
////////////////////////////////////
//// VOORBEELD PYTHON SCRIPT MET SESSION TOKEN/////
#! /usr/bin/python import urllib2 import urllib import base64 host = '192.168.1.23'
username = 'beeclear'
password = 'energie'
class beeclear:
def __init__( self, hostname, user, passwd ):
self.hostname = hostname
self.user = user
self.passwd = passwd
self.cookie = None;
def connect( self ):
post_args = urllib.urlencode( { 'username': base64.b64encode(self.user), 'password': base64.b64encode(self.passwd) } )
url = 'http://' + self.hostname + '/bc_login?' + post_args;
req1 = urllib2.Request(url)
response = urllib2.urlopen(req1)
self.cookie = response.headers.get('Set-Cookie')
def send( self, command ):
url = 'http://' + self.hostname + '/' + command
req = urllib2.Request(url)
req.add_header('cookie', self.cookie)
f = urllib2.urlopen(req)
data = f.read()
f.close
return data
a = beeclear( host, username, password )
a.connect()
print a.send ( 'bc_current' )
//// VOORBEELD SCRIPT MET SESSION TOKEN/////
Wat goed helpt om te achterhalen hoe de interactie werkt, is om bijvoorbeeld de browser "Chrome" de debug functie (F12) te starten.
Hierin kunt u precies achterhalen welke API-calls er worden gedaan met de bijbehorende JSON-strings.
Bij mij werkt de onderstaande URL (met URL-encoding) in een webbrowser om te testen:
http://beeclear.local/bc_login?username=...dpZQ%3D%3D
(beeclear/energie)
Ik heb dan wel session token security uit gezet.
Als het goed is staat dat in de API documentatie (security).
Username en password moeten base64 encoded worden.
///////////API-DOC//////////////////
13B. Enable/disable Security (Session token security)
Explanation: Sets / Disables session security.
Command : http://{BeeClear}/bc_security?set=off
http://{BeeClear}/bc_security?set=on
Returns :
{"info":"nok"} or
{"info":"ok"}
////////////////////////////////////
//// VOORBEELD PYTHON SCRIPT MET SESSION TOKEN/////
#! /usr/bin/python import urllib2 import urllib import base64 host = '192.168.1.23'
username = 'beeclear'
password = 'energie'
class beeclear:
def __init__( self, hostname, user, passwd ):
self.hostname = hostname
self.user = user
self.passwd = passwd
self.cookie = None;
def connect( self ):
post_args = urllib.urlencode( { 'username': base64.b64encode(self.user), 'password': base64.b64encode(self.passwd) } )
url = 'http://' + self.hostname + '/bc_login?' + post_args;
req1 = urllib2.Request(url)
response = urllib2.urlopen(req1)
self.cookie = response.headers.get('Set-Cookie')
def send( self, command ):
url = 'http://' + self.hostname + '/' + command
req = urllib2.Request(url)
req.add_header('cookie', self.cookie)
f = urllib2.urlopen(req)
data = f.read()
f.close
return data
a = beeclear( host, username, password )
a.connect()
print a.send ( 'bc_current' )
//// VOORBEELD SCRIPT MET SESSION TOKEN/////