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-14
- Revision:
- 5:f0c0128cde62
- Parent:
- 4:fcadeb9bdcbd
- Child:
- 6:f5189d4f109f
File content as of revision 5:f0c0128cde62:
#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
#if defined(TARGET_LPC1768)
static char res_buffer[512];
#elif defined(TARGET_K64F)
static char res_buffer[4096];
#else
#error not tested platform.
#endif
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) {
#if 0
{
char url[128];
time(&ctTime);
snprintf(url, sizeof(url),
"https://api.twitter.com/1.1/statuses/update.json"
"?status=Hello World! - %s", ctime(&ctTime));
res_buffer[0] = '\0';
HTTPResult result = oa4t.post(url, &res);
printf("POST result = %d\n%s\n", result, res_buffer);
}
#else
{
std::vector<std::string> post;
post.reserve(3);
char status[64];
char location_lat[24];
char location_long[24];
time(&ctTime);
snprintf(status, sizeof(status), "status=Hello Fujiyama! - %s", ctime(&ctTime));
snprintf(location_lat, sizeof(location_lat), "lat=%f", 35.359577);
snprintf(location_long, sizeof(location_long), "long=%f", 138.731414);
post.push_back(status);
post.push_back(location_lat);
post.push_back(location_long);
res_buffer[0] = '\0';
HTTPResult result = oa4t.post("https://api.twitter.com/1.1/statuses/update.json", &post, &res);
printf("POST result = %d\n%s\n", result, res_buffer);
}
#endif
{
const char url[] = "https://api.twitter.com/1.1/users/show.json"
"?screen_name=twitter";
res_buffer[0] = '\0';
HTTPResult result = oa4t.get(url, &res);
printf("GET result = %d\n%s\n", result, res_buffer);
}
// Wait 60 seconds for next time.
for (int t=0; t<60; t++) {
myled = 1;
wait(0.2);
myled = 0;
wait(0.8);
}
printf("\n");
}
}
ban4jp -
