Skip to content

Instantly share code, notes, and snippets.

@techdubb
Last active November 3, 2015 00:11
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save techdubb/5571d309ee88ca1e33fd to your computer and use it in GitHub Desktop.
Save techdubb/5571d309ee88ca1e33fd to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
var inquirer = require("inquirer"),
request = require("request"),
qs = require('querystring'),
fs = require('fs');
var request_token_url = 'https://api.twitter.com/oauth/request_token',
access_token_url = 'https://api.twitter.com/oauth/access_token';
var questions0 = [
{
type: "input",
name: "consumer_key",
message: "Consumer Key: "
},
{
type: "input",
name: "consumer_secret",
message: "Consumer Secret: "
}
];
var questions1 = [
{
type: "input",
name: "pin",
message: "Pin: "
}
];
inquirer.prompt( questions0, function( answers0 ) {
answers0.oauth_callback = 'oob';
request.post({url: request_token_url, oauth: answers0}, function (e, r, body){
var req_data = qs.parse(body);
var uri = 'https://api.twitter.com/oauth/authenticate';
uri += '?' + qs.stringify({oauth_token: req_data.oauth_token});
console.log('Please visit: ' + uri);
inquirer.prompt( questions1, function( answers1 ) {
oauth = {
consumer_key: answers0.consumer_key,
consumer_secret: answers0.consumer_secret,
token: req_data.oauth_token,
token_secret: req_data.oauth_token_secret,
verifier: answers1.pin
};
request.post({url:access_token_url, oauth:oauth}, function (e, r, body) {
perm_data = qs.parse(body);
var env_text = '';
env_text += 'CONSUMER_KEY=' + answers0.consumer_key + "\n";
env_text += 'CONSUMER_SECRET=' + answers0.consumer_secret + "\n";
env_text += 'ACCESS_TOKEN=' + perm_data.oauth_token + "\n";
env_text += 'ACCESS_TOKEN_SECRET=' + perm_data.oauth_token_secret;
console.log(env_text);
fs.writeFile(".env", env_text, function(err) {
if(err) {
console.log(err);
} else {
console.log("The auth keys have been saved to .env!");
}
});
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment