Twitter client that can be directly tweet. (Intermediate server is not required.)

Dependencies:   EthernetInterface HTTPClient-wolfSSL NTPClient OAuth4Tw mbed-rtos mbed wolfSSL

Fork of OAuth4Tw by Atsuya Okazaki

Revision:
4:fcadeb9bdcbd
Parent:
2:392b8e079c7a
Child:
5:f0c0128cde62
--- a/main.cpp	Wed Jul 08 03:10:07 2015 +0000
+++ b/main.cpp	Wed Jul 08 14:55:36 2015 +0000
@@ -13,6 +13,8 @@
               "000000000-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // Access token
               "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");     // Access token secret
 
+static char res_buffer[1024] = "";
+
 int main()
 {
     int ret = eth.init(); //Use DHCP
@@ -32,12 +34,13 @@
         return -1;
     }
 
+
     printf("Trying to update time...\n");
 
     time_t ctTime;
     NTPResult result;
 
-    while(1) {
+    while (1) {
         result = ntp.setTime("pool.ntp.org");
         //result = ntp.setTime("pool.ntp.org", NTP_DEFAULT_PORT, 2000);
 
@@ -68,19 +71,40 @@
         wait(5);
     }
 
-    std::string uri = "https://api.twitter.com/1.1/statuses/update.json";
-    uri += "?status=";
-    uri += OAuth4Tw::url_escape("Hello World!");
-    uri += OAuth4Tw::url_escape(" - ");
-    uri += OAuth4Tw::url_escape(ctime(&ctTime));
-    std::string postarg;
-    std::string postres = oa4t.post(uri.c_str(), postarg);
-    printf("postres: %s\n", postres.c_str());
+
+    HTTPText res(res_buffer, sizeof(res_buffer));
 
     while (1) {
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
+        {
+            char url[128];
+            char post[128]; //TODO: fix required. need saving memory.
+
+            time(&ctTime);
+
+            snprintf(url, sizeof(url),
+                     "https://api.twitter.com/1.1/statuses/update.json"
+                     "?status=Hello World! - %s", ctime(&ctTime));
+
+            HTTPResult result = oa4t.post(url, post, &res);
+            printf("POST result = %d\n%s\n", result, res_buffer);
+        }
+
+        {
+            const char url[] = "https://api.twitter.com/1.1/users/show.json"
+                               "?screen_name=twitter";
+
+            HTTPResult result = oa4t.get(url, &res);
+            printf("GET result = %d\n%s\n", result, res_buffer);
+        }
+
+        // Wait 300 seconds for next time.
+        for (int t=0; t<300; t++) {
+            myled = 1;
+            wait(0.2);
+            myled = 0;
+            wait(0.8);
+        }
+
+        printf("\n");
     }
 }