RE: Exemple d'usage de l'API en Python3
01/09/2017, 14:23
Message : #2
Bonjour,
Concernant l'authentification oauth, le mode implicite n'étant pas encore actif, il est d'obtenir l'access_token via un refresh_token (généré préalablement avec la librairie PHP) :
Une fois le token obtenu, vous pouvez vous servir de requests :
Ou bien utiliser une librairie REST, par exemple Siesta
Siesta est installable via PIP, cependant il faut modifier légèrement la librairie pour qu'elle supporte hal (cela a été remonté dans les issues sur la page GitHub).
Concernant l'authentification oauth, le mode implicite n'étant pas encore actif, il est d'obtenir l'access_token via un refresh_token (généré préalablement avec la librairie PHP) :
Code :
import requests
import json
def get_accessToken():
token_url="https://api.keyyo.com/oauth2/token.php"
token_data = {
"client_id" : "Your client ID",
"client_secret" : "Your client Secret",
"grant_type" : "refresh_token",
"redirect_uri" : "Your redirect URI",
"refresh_token" : "Your refresh token"
}
response = requests.post(token_url, data=token_data)
if response.ok:
return response.json()["access_token"]
Une fois le token obtenu, vous pouvez vous servir de requests :
Code :
import requests
import json
baseUrl = "https://api.keyyo.com/manager/1.0"
def keyyoGet(endpoint):
if accessToken=="":
print "Error, please get an access token first!"
return ""
headers = {"Authorization" : "Bearer " + accessToken}
r = requests.get(baseUrl + endpoint, headers=headers)
if r.ok:
return r.json()
else:
return ""
services = keyyoGet("/services")
for service in services["_embedded"]["UCaaSVoIPAccount"]:
print service["csi"]
Ou bien utiliser une librairie REST, par exemple Siesta
Code :
from siesta import API, auth
token = auth.APIKeyAuth("Bearer " + accessToken, "Authorization")
api = API("https://api.keyyo.com/manager/1.0", auth=token)
ret, resp = api.services.get()
print ret.attrs
Siesta est installable via PIP, cependant il faut modifier légèrement la librairie pour qu'elle supporte hal (cela a été remonté dans les issues sur la page GitHub).