Forum Keyyo

Version complète : Exemple d'usage de l'API en Python3
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour,
pourriez-cous communiquer un exemple d'utilisation de l'API en Python3 avec les deux phases : utilisation d'oauth puis requête API comme la récupération de l'hisique des appels ?
merci
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) :

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).
URLs de référence