Skip to content

Instantly share code, notes, and snippets.

@nvasilakis
Created May 20, 2014 13:37
Show Gist options
  • Select an option

  • Save nvasilakis/88489c167ed634df06ad to your computer and use it in GitHub Desktop.

Select an option

Save nvasilakis/88489c167ed634df06ad to your computer and use it in GitHub Desktop.
using Rest;
public class SimpleTweet {
private static const string CONSUMER_KEY = "#######################"; // this comes from your app's twitter account page
private static const string CONSUMER_SECRET = "########################################"; // this comes from your app's twitter account
private static const string URL_FORMAT = "https://api.twitter.com";
private static const string REQUEST_TOKEN_URL = "https://api.twitter.com/oauth/request_token";
private static const string FUNCTION_ACCESS_TOKEN = "oauth/access_token";
private static const string FUNCTION_STATUSES_UPDATE = "1/statuses/update.xml";
private static const string PARAM_STATUS = "status";
public static int main(string[] args) {
// make sure there is a message to tweet
if(args[1] == null || args[1] == "") {
stdout.printf("No tweet message specified.\n");
return 0;
}
/** Authenticating with Twitter */
// initialize proxy
var proxy = new OAuthProxy(CONSUMER_KEY, CONSUMER_SECRET, URL_FORMAT, false);
// request token
try {
proxy.request_token("oauth/request_token", "oob");
} catch (Error e) {
stderr.printf("Couldn't get request token: %s\n", e.message);
return 1;
}
// prompt user for pin
stdout.printf("Go to http://twitter.com/oauth/authorize?oauth_token=%s then enter the PIN\n", proxy.get_token());
string pin = stdin.read_line();
// access token
try { proxy.access_token(FUNCTION_ACCESS_TOKEN, pin); }
catch (Error e) {
stderr.printf("Couldn't get access token: %s\n", e.message);
return 1;
}
/** sending the tweet */
// setup call
ProxyCall call = proxy.new_call();
call.set_function(FUNCTION_STATUSES_UPDATE);
call.set_method("POST");
call.add_param(PARAM_STATUS, args[1]);
try { call.sync(); } catch (Error e) {
stderr.printf("Cannot make call: %s\n", e.message);
return 1;
}
// print success
stdout.printf("Tweet succeeded!\n");
return 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment