If This Then That interface library. Designed to hook up to various services provided by IFTTT.
Dependents: IFTTT_Ethernet_Example IFTTT_WIZwiki-W7500 IFTTT_WizFi250 StopThief ... more
For more information please see the IFTTT Component page : https:developer.mbed.org/components/If-This-Then-That-IFTTT/
Diff: ifttt.cpp
- Revision:
- 3:c916e13a269a
- Parent:
- 2:b368358ab24c
- Child:
- 4:6edd192323df
- Child:
- 5:bef11de60a9b
diff -r b368358ab24c -r c916e13a269a ifttt.cpp
--- a/ifttt.cpp Fri Jul 10 22:12:41 2015 +0000
+++ b/ifttt.cpp Mon Jul 13 17:46:37 2015 +0000
@@ -60,22 +60,24 @@
// Set up Host / Port
this->port = IFTTT_PORT;
this->host = IFTTT_IP;
+
+ // Initialize ingredient values to empty strings.
+ v1 = "";
+ v2 = "";
+ v3 = "";
}
//
-// Send data to maker.ifttt.org
-// currently only uses GET requests, unsecured
+// Add ingredients to be sent.
//
bool
-IFTTT::sendMaker( char * value1, char * value2, char * value3)
+IFTTT::addIngredients( char * value1, char * value2, char * value3)
{
// update internal pointers. If variable not given then pass an empty string
v1 = (NULL == value1)?"":value1;
v2 = (NULL == value2)?"":value2;
v3 = (NULL == value3)?"":value3;
- int ret = post();
- DBG("Sending Data returned code : %d",ret);
- return ret;
+ return true;
}
//
@@ -100,6 +102,7 @@
}
// Prep data to send
+ // TODO: verify / modify data to be query string compliant (convert spaces to '+', convert non-alpha-numberic characters to the proper encoding... etc)
char str[IFTTT_MAX_SIZE_STRING] = {0};
sprintf(str, "GET /trigger/%s/with/key/%s/?value1=%s&value2=%s&value3=%s HTTP/1.1\r\nHost: maker.ifttt.com\r\n\r\n",eventName,secretKey,v1,v2,v3);
DBG("String to send is:\n\r%s",str);
@@ -123,7 +126,9 @@
return true;
}
-//TODO: Implement
+//
+// This function sends JSON encoded data encoded in a POST packet,
+//
bool IFTTT::post()
{
// Connect to maker.ifttt.org
@@ -183,3 +188,30 @@
return true;
}
+
+//
+// Send trigger and any values associated to maker.ifttt.com
+// currently unsecured (sends over HTTP, not https)
+//
+bool
+IFTTT::trigger(int triggerType)
+{
+ int ret = 0;
+ switch(triggerType) {
+ case IFTTT_GET:
+ DBG("Sending Data as GET request");
+ ret = get();
+ break;
+ case IFTTT_POST:
+ DBG("Sending Data as POST request");
+ ret = post();
+ break;
+
+ default:
+ WARN("Invalid type, defaulting to sending data as POST request");
+ ret = post();
+ break;
+ }
+ DBG("Sending Data return code : %d",ret);
+ return ret;
+}
Austin Blackstone
If This Then That (IFTTT)