Twitter with OAuth Example.\\ see also http://www.soramimi.jp/twicpp/index.html

Dependencies:   mbed HTTPClient NTPClient_NetServices EthernetNetIf

Committer:
soramimi
Date:
Wed Mar 23 19:53:42 2011 +0000
Revision:
0:7ddb56bfde0c
Child:
1:c3f74457cad4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
soramimi 0:7ddb56bfde0c 1 #include "mbed.h"
soramimi 0:7ddb56bfde0c 2 #include "EthernetNetIf.h"
soramimi 0:7ddb56bfde0c 3 #include "HTTPClient.h"
soramimi 0:7ddb56bfde0c 4 #include "NTPClient.h"
soramimi 0:7ddb56bfde0c 5
soramimi 0:7ddb56bfde0c 6 #include "oauth.h"
soramimi 0:7ddb56bfde0c 7
soramimi 0:7ddb56bfde0c 8 EthernetNetIf eth(IpAddr(192,168,0,100), //IP Address
soramimi 0:7ddb56bfde0c 9 IpAddr(255,255,255,0), //Network Mask
soramimi 0:7ddb56bfde0c 10 IpAddr(192,168,0,1), //Gateway
soramimi 0:7ddb56bfde0c 11 IpAddr(192,168,0,1) //DNS
soramimi 0:7ddb56bfde0c 12 );
soramimi 0:7ddb56bfde0c 13 NTPClient ntp;
soramimi 0:7ddb56bfde0c 14 HTTPClient http;
soramimi 0:7ddb56bfde0c 15
soramimi 0:7ddb56bfde0c 16 DigitalOut led(LED1);
soramimi 0:7ddb56bfde0c 17
soramimi 0:7ddb56bfde0c 18 // IMPORTANT: please change the following keys for your application.
soramimi 0:7ddb56bfde0c 19
soramimi 0:7ddb56bfde0c 20 static char const consumer_key[] = "AAAAAAAAAAAAAAAAAAAAAA";
soramimi 0:7ddb56bfde0c 21 static char const consumer_secret[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
soramimi 0:7ddb56bfde0c 22
soramimi 0:7ddb56bfde0c 23 static char const token_key[] = "00000000-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
soramimi 0:7ddb56bfde0c 24 static char const token_secret[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
soramimi 0:7ddb56bfde0c 25
soramimi 0:7ddb56bfde0c 26 // get current time and set to system clock
soramimi 0:7ddb56bfde0c 27
soramimi 0:7ddb56bfde0c 28 void reset_time()
soramimi 0:7ddb56bfde0c 29 {
soramimi 0:7ddb56bfde0c 30 Host server(IpAddr(), 123, "ntp.jst.mfeed.ad.jp");
soramimi 0:7ddb56bfde0c 31 ntp.setTime(server);
soramimi 0:7ddb56bfde0c 32 }
soramimi 0:7ddb56bfde0c 33
soramimi 0:7ddb56bfde0c 34 // post message to Twitter
soramimi 0:7ddb56bfde0c 35
soramimi 0:7ddb56bfde0c 36 void tweet(char const *message)
soramimi 0:7ddb56bfde0c 37 {
soramimi 0:7ddb56bfde0c 38
soramimi 0:7ddb56bfde0c 39 std::string uri = "http://api.twitter.com/statuses/update.xml";
soramimi 0:7ddb56bfde0c 40 uri += "?status=";
soramimi 0:7ddb56bfde0c 41 uri += oauth_url_escape(message);
soramimi 0:7ddb56bfde0c 42
soramimi 0:7ddb56bfde0c 43 std::string req_url;
soramimi 0:7ddb56bfde0c 44 std::string postarg;
soramimi 0:7ddb56bfde0c 45
soramimi 0:7ddb56bfde0c 46 req_url = oauth_sign_url2(uri.c_str(), &postarg, OA_HMAC, 0, consumer_key, consumer_secret, token_key, token_secret);
soramimi 0:7ddb56bfde0c 47 oauth_http_post(req_url.c_str(), postarg.c_str());
soramimi 0:7ddb56bfde0c 48 }
soramimi 0:7ddb56bfde0c 49
soramimi 0:7ddb56bfde0c 50 //
soramimi 0:7ddb56bfde0c 51
soramimi 0:7ddb56bfde0c 52 int main()
soramimi 0:7ddb56bfde0c 53 {
soramimi 0:7ddb56bfde0c 54 eth.setup();
soramimi 0:7ddb56bfde0c 55
soramimi 0:7ddb56bfde0c 56 reset_time();
soramimi 0:7ddb56bfde0c 57
soramimi 0:7ddb56bfde0c 58 tweet("Hello, world");
soramimi 0:7ddb56bfde0c 59
soramimi 0:7ddb56bfde0c 60 while(1) {
soramimi 0:7ddb56bfde0c 61 led = 1;
soramimi 0:7ddb56bfde0c 62 wait(0.5);
soramimi 0:7ddb56bfde0c 63 led = 0;
soramimi 0:7ddb56bfde0c 64 wait(0.5);
soramimi 0:7ddb56bfde0c 65 }
soramimi 0:7ddb56bfde0c 66 }