Twitter with OAuth Example.\\ see also http://www.soramimi.jp/twicpp/index.html
Dependencies: mbed HTTPClient NTPClient_NetServices EthernetNetIf
main.cpp@0:7ddb56bfde0c, 2011-03-23 (annotated)
- Committer:
- soramimi
- Date:
- Wed Mar 23 19:53:42 2011 +0000
- Revision:
- 0:7ddb56bfde0c
- Child:
- 1:c3f74457cad4
Who changed what in which revision?
User | Revision | Line number | New 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 | } |