Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

API OVH con Python


El primer paso será crear una app, para ello nos dirigimos a:

https://eu.api.ovh.com/createApp/

Nos proporcionarán dos parámetros:

  • APPLICATION_KEY
  • APPLICATION_SECRET

Asignamos los permisos que necesita nuestra app:

curl -XPOST -H"X-Ovh-Application: APPLICATION_KEY" -H "Content-type: application/json" https://eu.api.ovh.com/1.0/auth/credential  -d '{
    "accessRules": [{"method":"GET","path":"/*"},{"method":"POST","path":"/*"},{"method":"PUT","path":"/*"},{"method":"DELETE","path":"/*"}]
}'

Nos responderá con una URL y un CONSUMER_KEY:

"validationUrl":"https://eu.api.ovh.com/auth/?credentialToken=CREDENTIAL_TOKEN","consumerKey":"CONSUMER_KEY","state":"pendingValidation"}

Visitamos la validationUrl y le damos el tiempo de validez que necesitemos.

Instalamos la librería de python para poder interactuar con la API:

pip install ovh

Escribimos un script de test:

vi test.py

import ovh
import json
APPLICATION_KEY = 'XXXXXXXXXXXXXXX'
APPLICATION_SECRET = 'YYYYYYYYYYYYYYY'
CONSUMER_KEY = 'ZZZZZZZZZZZZZZZZZZZ'
client = ovh.Client(
    endpoint = 'ovh-eu',
    application_key = APPLICATION_KEY,
    application_secret = APPLICATION_SECRET,
    consumer_key = CONSUMER_KEY,
)
result = client.get('/me')
print json.dumps(result, indent=4)

Todas las llamadas están documentadas con ejemplos incluidos en:

https://api.ovh.com/console/

Si no queremos tener las credenciales en el propio script podemos tenerlo en un fichero externo que podríamos incluir en el gitignore, de este modo los scripts se podrían commitear a un repo de git sin subir passwords.

En el path del script:

vi ovh.conf

[default]
; general configuration: default endpoint
endpoint=ovh-eu

[ovh-eu]
application_key=APPLICATION_KEY
application_secret=APPLICATION_SECRET
consumer_key=CONSUMER_KEY

Y el script quedaría del siguiente modo:

vi test.py

import ovh
import json
client = ovh.Client()

result = client.get('/me')
print json.dumps(result, indent=4)

Autor: Kr0m -- 28/06/2017 23:06:27