Using the OVH API (OVHcloud) with Tines
I’ve had to tinker a bit to get the OVH API working within Tines, but eventually succeeded.
INVALID_SIGNATURE was my main hurdle, but eventually got it working, make sure you have API details created beforehand
https://eu.api.ovh.com/createToken/, see their documentation at https://docs.ovh.com/gb/en/api/first-steps-with-ovh-api/
The all-in-one block
The magic for using 1 block is using the LOCAL block
These are my Local values and content
{ "url": "https://api.ovh.com/1.0/ip", "method": "GET", "body": "<<>>", "timestamp": "<<UNIX_TIMESTAMP()>>", "clear_sign": "<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<LOCAL.method>>+<<LOCAL.url>>+<<LOCAL.body>>+<<LOCAL.timestamp>>", "signature": "$1$<<SHA1(LOCAL.clear_sign)>>" }
this way we can set up the signature and hash it within 1 block and send it with the HEADER
Full block copy-paste below
{ "standardLibVersion": "14", "actionRuntimeVersion": "4", "agents": [ { "disabled": false, "name": "Get OVH IP addresses", "description": null, "options": "{\"url\":\"<<LOCAL.url>>\",\"content_type\":\"application_json\",\"method\":\"=LOCAL.method\",\"headers\":{\"X-Ovh-Application\":\"=CREDENTIAL.ovh_api_application_key\",\"X-Ovh-Consumer\":\"=CREDENTIAL.ovh_api_consumer_key\",\"X-Ovh-Timestamp\":\"=LOCAL.timestamp\",\"X-Ovh-Signature\":\"=LOCAL.signature\"},\"local\":{\"url\":\"https://api.ovh.com/1.0/ip\",\"method\":\"GET\",\"body\":\"<<>>\",\"timestamp\":\"<<UNIX_TIMESTAMP()>>\",\"clear_sign\":\"<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<LOCAL.method>>+<<LOCAL.url>>+<<LOCAL.body>>+<<LOCAL.timestamp>>\",\"signature\":\"$1$<<SHA1(LOCAL.clear_sign)>>\"}}", "position": { "x": 1950, "y": 765 }, "type": "httpRequest", "timeSavedUnit": "minutes", "timeSavedValue": 0, "monitorAllEvents": false, "monitorFailures": false, "monitorNoEventsEmitted": null, "form": null } ], "links": [], "diagramNotes": [] }
The 3-block setup
Same as the all-in-1 but spread in 3 blocks, for readability & debugging purposes
{ "standardLibVersion": "14", "actionRuntimeVersion": "4", "agents": [ { "disabled": false, "name": "Get OVH IP addresses", "description": null, "options": "{\"url\":\"<<ovh_api_to_request.url>>\",\"content_type\":\"application_json\",\"method\":\"get\",\"headers\":{\"X-Ovh-Application\":\"=CREDENTIAL.ovh_api_application_key\",\"X-Ovh-Consumer\":\"=CREDENTIAL.ovh_api_consumer_key\",\"X-Ovh-Timestamp\":\"=ovh_api_to_request.timestamp\",\"X-Ovh-Signature\":\"=ovh_signature\"},\"local\":{}}", "position": { "x": 1575, "y": 1035 }, "type": "httpRequest", "timeSavedUnit": "minutes", "timeSavedValue": 0, "monitorAllEvents": false, "monitorFailures": false, "monitorNoEventsEmitted": null, "form": null }, { "disabled": false, "name": "OVH Signature", "description": null, "options": "{\"mode\":\"message_only\",\"loop\":false,\"payload\":\"$1$<<SHA1(LOCAL.clear_sign)>>\",\"local\":{\"clear_sign\":\"<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<ovh_api_to_request.method>>+<<ovh_api_to_request.url>>+<<ovh_api_to_request.body>>+<<ovh_api_to_request.timestamp>>\"}}", "position": { "x": 1575, "y": 930 }, "type": "eventTransformation", "timeSavedUnit": "minutes", "timeSavedValue": 0, "monitorAllEvents": false, "monitorFailures": false, "monitorNoEventsEmitted": null, "form": null }, { "disabled": false, "name": "OVH API to request", "description": null, "options": "{\"mode\":\"message_only\",\"loop\":false,\"payload\":{\"url\":\"https://api.ovh.com/1.0/ip\",\"method\":\"GET\",\"body\":\"\",\"timestamp\":\"<<UNIX_TIMESTAMP()>>\"}}", "position": { "x": 1575, "y": 825 }, "type": "eventTransformation", "timeSavedUnit": "minutes", "timeSavedValue": 0, "monitorAllEvents": false, "monitorFailures": false, "monitorNoEventsEmitted": null, "form": null } ], "links": [ { "sourceIdentifier": 2, "receiverIdentifier": 1 }, { "sourceIdentifier": 1, "receiverIdentifier": 0 } ], "diagramNotes": [] }