Difference between revisions of "Trigger: Webhook (URL)"

Line 82: Line 82:
 
=== Dictionary - Array ===
 
=== Dictionary - Array ===
  
* ''''' [[Variables|Dictionary - Array]] '''''
+
* ''''' [https://macrodroidforum.com/wiki/index.php/Variables#Data_Structure_Variable_Types Variables | Dictionary - Array] '''''
 +
 
 
<pre style="background-color: #ACC8E5; color: #112A46; border-radius: 10px; padding: 10px;">
 
<pre style="background-color: #ACC8E5; color: #112A46; border-radius: 10px; padding: 10px;">
 
id = User-defined identifier.
 
id = User-defined identifier.

Revision as of 19:08, 4 January 2024

About

This trigger will fire on this device when the specified web URL is called from anywhere.

More information here. https://medium.com/@macrodroid/introducing-the-webhook-trigger-a760e2ee140d

Warning

that the URL is unique to this device and the URL will change if the application is reinstalled (or all application data is deleted).

This feature uses Firebase Cloud Messaging to notify the device via the backend server, therefore it is not functional on devices that lack Google services (such as Alexa tablets etc.)


Request configuration

Identifier

The identifier is what is after the base url.
Base URL:

https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-677d4d/

E.G. The identifier would be 'mywebhook'
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-677d4d/mywebhook


IP address whitelist

You can support one or more IP addresses so that the webhook is only activated from specific IP addresses.
It also supports magic text '...'

Magic text list


Save body to string variable

If your HTTP POST request contains any text format, you can save it in any string variable.

Note that due to limits imposed by Firebase Cloud Messaging the maximum body text length is 3800 characters.

Variables


URL short

TinyUrl

It is a URL shortening service used to create shorter, more shareable links.
You can use it to shorten your urls, go from this:
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-677d4d/mywebhook
to this:
http://tinyurl.com/5xzj7w6j


Include variables

String, Integer, Decimal, Boolean

ID = User-defined identifier.

VAR1 = The first variable to be defined, in this case with a numerical value.

VAR2 = The second variable to be defined, in this case with a plain-text value.

To set a variable:
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-69600af77d4d/ID?VARNAME1=Hello

To set multiple variables:
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-69600af77d4d/ID?VARNAME1=42&VARNAME2=Hello_World

An introduction video is available MacroDroid Variables https://youtu.be/0V_EcyhxrpA?si=_mjXwGVXHO3J8Ywp


Dictionary - Array

id = User-defined identifier.

mydict = It is a dictionary type variable for the example.

KEY = It is the key or entry of the dictionary.

VALUETEXT = It is the value you want to send.

For Dictionaries / Array:
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-69600af77d4d/id?mydict(KEY)=VALUETEXT

An introduction video is available Using Dictionary and Array Variables https://youtu.be/u2zY5dv34CM


Webhook management

Export device ID to new device

You will be asked to create a password (it will be linked to your current device ID) and you can import it later in case your device is damaged or you update your current device.

Later you can use the 'Import device ID from another device' option to restore your previous Device ID.


Import device ID from other device

You will be asked for the Device ID and password and you will be able to correctly import the Device ID.


Generate new device ID

This will assign a new device id to this device. Existing webhook links for this device will no longer function.
To get a new device ID you just need to check the 'I have read and understood' box
and you can generate your new device ID.


Example

This macro will receive values by webhook and speak them by TTS.


Triggers

Webhook (MyWebhook)
https://trigger.macrodroid.com/c306bcd7-5f78-4895-bee4-69600af77d4d/id?VAR1=Hello


Actions

Speak text: You received a new value {lv=VAR1}


Constraints



Local variables

VAR1 = Hello (Type String)