Para la integración de Salesforce con otros sistemas, se establecen diferentes sistemas de comunicación entre los sistemas terceros y Salesforce.
Desde comunicación mediante protocolo SOAP, hasta la el nuevo API de comunicación REST – TOOLING API
La utilización del API REST es muy sencillo, simplemente es necesario logar al usuario y a continuación realizar cualquiera de las operaciones/consultas que nos proporciona este API.
A continuación se detallan los pasos
-
LOGIN
curl https://login.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=" -d "client_secret=" -d "username=edu.trujillo@xxxxxx.com" -d "password=xxxxxx"
Respecto de la petición descrita arriba, es necesario tener en cuenta lo siguiente:
* client_id y client_secret: Estos datos los sacaremos de Salesforce, desde el apartado Setup accederemos a Create -> Apps y en el subapartado connected Apps veremos las diferentes aplicaciones con permisos para conectarse contra Salesforce vía TOOLING API. En caso de no existir ninguna aplicación la crearemos.
Dentro del detalle de la aplicación encontraremos tanto el client_id como el client_secret. También es importante configurar el resto de campos de la aplicación como las IPs de confianza o el scope de Full Access
* userame y password: Son los datos de acceso para la org.
-
ACCESO AL API
La respuesta a la petición anterior nos dará el access_token, es mediante el access_token como accederemos al resto del API. La respuesta tendrá el siguiente aspecto:
{ "access_token": "asd!123.456.789.000.123", "instance_url": "https://xxxxxxx-dev-ed.my.salesforce.com", "id": "https://login.salesforce.com/id/123/456", "token_type": "Bearer", "issued_at": "789", "signature": "vPQRRRRDssssmmmMMMMi9IavSX0="}
Con estos datos, ya seríamos capaces de realizar llamadas a cualquier función/objeto del API. Por ejemplo si se quisiera invocar la ejecución de un determinado TEST se realizaría la siguiente llamada.
curl -d '{"tests":[{"classId":"ID-CLASE_DE_TEST","testMethods": [ "NOMBRE-METODO_DE_TEST" ]}]}' -X POST https://xxxxxxx-dev-ed.my.salesforce.com/services/data/v40.0/tooling/runTestsSynchronous/ -H "Accept: application/json" -H "Content-Type: application/json;charset=UTF-8" -H 'Authorization: Bearer asd!123.456.789.000.123'
Mediante este API existe la posibilidad de realizar aplicaciones externas que ataquen a SFDC o incluso de desarrollar tareas demonio que por ejemplo cada X tiempo ejecute todos los tests de nuestra ORG para no perder de vista la calidad/porcentaje de TEST completados.
Espero que todos los lectores disfrutéis del uso del API y os ahorre futuros dolores de cabeza!
Un Saludo y a seguir trabajando!