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
main.cpp
- Committer:
- ban4jp
- Date:
- 2015-07-08
- Revision:
- 4:fcadeb9bdcbd
- Parent:
- 2:392b8e079c7a
- Child:
- 5:f0c0128cde62
File content as of revision 4:fcadeb9bdcbd:
#include <string.h>
#include "mbed.h"
#include "EthernetInterface.h"
#include "NTPClient.h"
#include "OAuth4Tw.h"
DigitalOut myled(LED1);
EthernetInterface eth;
NTPClient ntp;
OAuth4Tw oa4t("XXXXXXXXXXXXXXXXXXXXXXXXX", // Consumer key
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", // Consumer secret
"000000000-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // Access token
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); // Access token secret
static char res_buffer[1024] = "";
int main()
{
int ret = eth.init(); //Use DHCP
if (!ret) {
printf("Initialized, MAC: %s\n", eth.getMACAddress());
} else {
printf("Error eth.init() - ret = %d\n", ret);
return -1;
}
ret = eth.connect();
if (!ret) {
printf("Connected, IP: %s, MASK: %s, GW: %s\n",
eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
} else {
printf("Error eth.connect() - ret = %d\n", ret);
return -1;
}
printf("Trying to update time...\n");
time_t ctTime;
NTPResult result;
while (1) {
result = ntp.setTime("pool.ntp.org");
//result = ntp.setTime("pool.ntp.org", NTP_DEFAULT_PORT, 2000);
if (result == NTP_OK) {
time(&ctTime);
printf("Time is set to (UTC): %s\n", ctime(&ctTime));
break;
}
switch (result) {
case NTP_CONN: ///<Connection error
printf("Connection error\n");
break;
case NTP_TIMEOUT: ///<Connection timeout
printf("Connection timeout\n");
break;
case NTP_PRTCL: ///<Protocol error
printf("Protocol error\n");
break;
case NTP_DNS: ///<Could not resolve name
printf("Could not resolve name\n");
break;
default:
printf("Error result=%d\n", result);
return -1;
}
wait(5);
}
HTTPText res(res_buffer, sizeof(res_buffer));
while (1) {
{
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");
}
}
ban4jp -
