Interface with the If This Then That (IFTTT). This example uses both POST and GET to interface with IFTTT. Up to 3 values can be sent along with the trigger event name.

Dependencies:   ESP8266Interface IFTTT mbed

Fork of IFTTT_Ethernet_Example by Austin Blackstone

Committer:
mbedAustin
Date:
Sun Jun 28 03:41:06 2015 +0000
Revision:
0:0f0676c43e4b
Child:
1:15dd4d0a3af0
Initial Commit of working GET/ POST interface with IFTT service;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 0:0f0676c43e4b 1 #include "mbed.h"
mbedAustin 0:0f0676c43e4b 2 #include "EthernetInterface.h"
mbedAustin 0:0f0676c43e4b 3 #include "HTTPClient.h"
mbedAustin 0:0f0676c43e4b 4
mbedAustin 0:0f0676c43e4b 5 EthernetInterface eth;
mbedAustin 0:0f0676c43e4b 6 HTTPClient http;
mbedAustin 0:0f0676c43e4b 7 char str[512] = {};
mbedAustin 0:0f0676c43e4b 8 char json[125] = {};
mbedAustin 0:0f0676c43e4b 9 char eventName[] = "helloworld";
mbedAustin 0:0f0676c43e4b 10 char key[] = "ChangeThisToTheKeyProvidedByIFTTonTheMakerChannel";
mbedAustin 0:0f0676c43e4b 11 char value1[] = {"A"}, value2[] = {"B"}, value3[] = {"C"};
mbedAustin 0:0f0676c43e4b 12
mbedAustin 0:0f0676c43e4b 13 int main()
mbedAustin 0:0f0676c43e4b 14 {
mbedAustin 0:0f0676c43e4b 15 eth.init(); //Use DHCP
mbedAustin 0:0f0676c43e4b 16 eth.connect();
mbedAustin 0:0f0676c43e4b 17 printf("IP Address is %s \n\r", eth.getIPAddress());
mbedAustin 0:0f0676c43e4b 18
mbedAustin 0:0f0676c43e4b 19 //GET
mbedAustin 0:0f0676c43e4b 20 printf("GETing data... \n\r");
mbedAustin 0:0f0676c43e4b 21 sprintf(str, "https://maker.ifttt.com/trigger/%s/with/key/%s?value1=%s&value2=%s&value3=%s",eventName,key,value1,value2,value3);
mbedAustin 0:0f0676c43e4b 22 printf("String is : %s\n\r",str);
mbedAustin 0:0f0676c43e4b 23 int ret = http.get(str, str, 128);
mbedAustin 0:0f0676c43e4b 24 if (!ret)
mbedAustin 0:0f0676c43e4b 25 {
mbedAustin 0:0f0676c43e4b 26 printf("Page fetched successfully - read %d characters\n\r", strlen(str));
mbedAustin 0:0f0676c43e4b 27 printf("Result: %s\n", str);
mbedAustin 0:0f0676c43e4b 28 }
mbedAustin 0:0f0676c43e4b 29 else
mbedAustin 0:0f0676c43e4b 30 {
mbedAustin 0:0f0676c43e4b 31 printf("Error - ret = %d - HTTP return code = %d \n\r", ret, http.getHTTPResponseCode());
mbedAustin 0:0f0676c43e4b 32 }
mbedAustin 0:0f0676c43e4b 33
mbedAustin 0:0f0676c43e4b 34 //POST
mbedAustin 0:0f0676c43e4b 35 HTTPMap map;
mbedAustin 0:0f0676c43e4b 36 HTTPText inText(str, 512);
mbedAustin 0:0f0676c43e4b 37 map.put("value1", value1);
mbedAustin 0:0f0676c43e4b 38 map.put("value2", value2);
mbedAustin 0:0f0676c43e4b 39 map.put("value3", value3);
mbedAustin 0:0f0676c43e4b 40 sprintf(str, "https://maker.ifttt.com/trigger/%s/with/key/%s",eventName,key);
mbedAustin 0:0f0676c43e4b 41 printf("String is : %s\n\r",str);
mbedAustin 0:0f0676c43e4b 42 printf("POSTing data ....\n\r");
mbedAustin 0:0f0676c43e4b 43 ret = http.post(str, map, &inText);
mbedAustin 0:0f0676c43e4b 44 if (!ret)
mbedAustin 0:0f0676c43e4b 45 {
mbedAustin 0:0f0676c43e4b 46 printf("Executed POST successfully - read %d characters \n\r", strlen(str));
mbedAustin 0:0f0676c43e4b 47 printf("Result: %s \n\r", str);
mbedAustin 0:0f0676c43e4b 48 }
mbedAustin 0:0f0676c43e4b 49 else
mbedAustin 0:0f0676c43e4b 50 {
mbedAustin 0:0f0676c43e4b 51 printf("Error - ret = %d - HTTP return code = %d \n\r", ret, http.getHTTPResponseCode());
mbedAustin 0:0f0676c43e4b 52 }
mbedAustin 0:0f0676c43e4b 53
mbedAustin 0:0f0676c43e4b 54
mbedAustin 0:0f0676c43e4b 55
mbedAustin 0:0f0676c43e4b 56 eth.disconnect();
mbedAustin 0:0f0676c43e4b 57
mbedAustin 0:0f0676c43e4b 58 while(1) {
mbedAustin 0:0f0676c43e4b 59 }
mbedAustin 0:0f0676c43e4b 60 }