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/
Revision 3:c916e13a269a, committed 2015-07-13
- Comitter:
- mbedAustin
- Date:
- Mon Jul 13 17:46:37 2015 +0000
- Parent:
- 2:b368358ab24c
- Child:
- 4:6edd192323df
- Child:
- 5:bef11de60a9b
- Commit message:
- Added POST capability and fixed bug that would send random numbers when not initialized properly.
Changed in this revision
| ifttt.cpp | Show annotated file Show diff for this revision Revisions of this file |
| ifttt.h | Show annotated file Show diff for this revision Revisions of this file |
--- 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;
+}
--- a/ifttt.h Fri Jul 10 22:12:41 2015 +0000
+++ b/ifttt.h Mon Jul 13 17:46:37 2015 +0000
@@ -30,6 +30,8 @@
#define IFTTT_IP "107.22.235.178"
#define IFTTT_PORT 80
+#define IFTTT_GET 0
+#define IFTTT_POST 1
/**
@@ -49,7 +51,7 @@
IFTTT(const char * event, const char * key, TCPSocketConnection * s = NULL);
/**
- * Send data to maker.ifttt.com
+ * Add ingredients (values) to be sent to maker.ifttt.com
*
* @param v1 value 1 to send
* @param v2 value 2 to send
@@ -57,10 +59,10 @@
*
* @return true if successful, false if failed
*/
- bool sendMaker(char * v1 = NULL, char * v2 = NULL, char * v3 = NULL);
+ bool addIngredients(char * v1 = NULL, char * v2 = NULL, char * v3 = NULL);
/**
- * Send data to maker.ifttt.com
+ * Add ingredients (values) to be sent to maker.ifttt.com
*
* @param v1 value 1 to send
* @param v2 value 2 to send
@@ -68,7 +70,16 @@
*
* @return true if successful, false if failed
*/
- bool sendMaker(int v1 = NULL, int v2 = NULL, int v3 = NULL);
+ bool addIngredients(int v1 = NULL, int v2 = NULL, int v3 = NULL);
+
+ /**
+ * Send data via POST or GET to maker.ifttt.com
+ *
+ * @param iftttType specifies how to send the data. POST by default, GET optional.
+ *
+ * @return true if successful, false if failed
+ */
+ bool trigger(int triggerType = IFTTT_POST);
private:
@@ -98,6 +109,7 @@
const char * v3;
const char * host;
int port;
+
};
#endif // IFTTT_H
Austin Blackstone
If This Then That (IFTTT)