Come inviare un evento IFTTT
In questa pagina fornisco i codici script allo scopo di inviare un evento IFTTT.
Prego tener conto dei seguenti requisiti:
- qui è come si configura IFTTT in modo tale da poterlo usare con bttn HTTP action, o HTTP Short/Long action.
- Si inizia facendo uso del canale IFTTT Maker Webhook:
- Connettetevi al vostro account IFTTT.
- Andate su "https://ifttt.com/maker_webhooks"
- Selezionate il pulsante "Documentation". Questa pagina mostra un URL del tipo "https://maker.ifttt.com/use/xxxxxyyyyzzz".
- Copiate la vostra chiave, essa verrà utilizzata in tutti gli script con il nome di "apikey".
- Create il vostro applet IFTTT maker webhook:
- Andate su "https://ifttt.com/create".
- Selezionate "This".
- Cercate "Webhooks" e selezionatelo.
- Selezionate "Receive a web request".
- Nel campo "Event Name" inseriamo il nome dell'evento, in tutti gli script usiamo "button_pressed" come esempio. Questo nome di evento è usato in tutti gli script con il nome di "event".
- Selezionate quello che volete come parte "That" e salvate il vostro applet, per esempio cercate "Notifications" e selezionate "Send a notification from the IFTTT app".
Assicuratevi di tenere per voi gli URL di webhook, non condivideteli sui social network, poiché chiunque può utilizzare l'URL per avviare la vostra applet IFTTT.
Linguaggio Bash
- avremo bisogno di alcuni pacchetti Entware, pertanto fare riferimento a questa pagina su come installare Entware su un router;
- avremo bisogno di un pacchetto Entware, curl, per installarlo si deve usare il comando "opkg install curl";
#!/bin/bash
apikey=""
event="button_pressed"
value1="My value 1"
value2="My value 2"
value3="My value 3"
request_body=$(cat <<EOF
{
"value1": "$value1",
"value2": "$value2",
"value3": "$value3"
}
EOF
)
echo $request_body
header="Content-Type: application/json"
/opt/bin/curl -v -i -X POST -H "$header" -d "$request_body" "https://maker.ifttt.com/trigger/$event/with/key/$apikey"
Linguaggio PHP
- per eseguire questi script su un router, avremo bisogno di alcuni pacchetti Entware, pertanto fare riferimento a questa pagina su come installare Entware su un router - questi script sono stati verificati usando la versione 7.2.9 di PHP;
eseguire la linea di comando "opkg install php7-cli php7-mod-curl php7-mod-json". Lo script dovrà essere eseguito usando il comando "php-cli";
- per eseguire questi script su Microsoft Windows, avremo bisogno di passare alcune librerie aggiuntive mediante la riga di comando (o eventualmente modificare le impostazioni PHP) - questi script sono stati verificati usando la versione 5.6.36 di PHP;
su Microsoft Windows, bisogna modificare il file "PHP.INI" nella riga ";extension=php_curl.dll" (rimuovere il punto
e virgola per rendere disponibile la libreria); oppure chiamare l'interprete PHP da linea di comando passando il parametro "-d extension=php_curl.dll".
<?php
$apikey = "";
$event = "button_pressed";
$value1 = "My value 1";
$value2 = "My value 2";
$value3 = "My value 3";
$ch = curl_init();
$postdata = json_encode([
"value1" => $value1,
"value2" => $value2,
"value3" => $value3,
]);
$header = array();
$header[] = "Content-Type: application/json";
curl_setopt($ch,CURLOPT_URL, "https://maker.ifttt.com/trigger/$event/with/key/$apikey");
curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
print_r($result);
print_r("\r\n\r\n");
curl_close($ch);
?>
Linguaggio Python
- per eseguire questi script su un router, avremo bisogno dell'interprete Python, pertanto
fare riferimento a questa pagina su come installare l'interprete Python su un router - questi script sono stati verificati usando la versione 3.7.0 di Python;
- per eseguire questi script su Microsoft Windows, dovremo prima installare Python (consiglio di installare la versione 3.x) - questi script sono stati verificati usando la versione 3.7.1 di Python;
import requests
apikey = ""
event = "button_pressed"
value1 = "Test001-value1"
value2 = "Test001-value2"
value3 = "Test001-value3"
url = "https://maker.ifttt.com/trigger/%s/with/key/%s" % (event, apikey)
payload = { "value1" : value1, "value2" : value2, "value3" : value3 }
headers = {}
res = requests.post(url, data=payload, headers=headers)