- http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html#anchor4
- https://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html
request.post('https://api.login.yahoo.com/oauth/v2/get_token', {
oauth: {
consumer_key: '...',
consumer_secret: '...',
token: '...',
token_secret: '...',
session_handle: '...'
}
}, function (err, res, body) {
var result = require('querystring').parse(body)
// assert.equal(typeof result, 'object')
})
request.post('https://accounts.google.com/o/oauth2/token', {
form: {
grant_type: 'refresh_token',
client_id: '...',
client_secret: '...',
refresh_token: '...'
},
json: true
}, function (err, res, body) {
// assert.equal(typeof body, 'object')
})
request.post('https://up.flickr.com/services/upload', {
oauth: {
consumer_key: '...',
consumer_secret: '...',
token: '...',
token_secret: '...'
},
// all meta data should be included here for proper signing
qs: {
title: 'My cat is awesome',
description: 'Sent on ' + new Date(),
is_public: 1
},
// again the same meta data + the actual photo
formData: {
title: 'My cat is awesome',
description: 'Sent on ' + new Date(),
is_public: 1,
photo:fs.createReadStream('cat.png')
},
json: true
}, function (err, res, body) {
// assert.equal(typeof body, 'object')
})
Use Request as a Writable stream to easily POST
Readable streams (like files, other HTTP requests, or otherwise).
TL;DR: Pipe a Readable Stream onto Request via:
READABLE.pipe(request.post(URL));
A more detailed example:
var fs = require('fs')
, path = require('path')
, http = require('http')
, request = require('request')
, TMP_FILE_PATH = path.join(path.sep, 'tmp', 'foo')
;
// write a temporary file:
fs.writeFileSync(TMP_FILE_PATH, 'foo bar baz quk\n');
http.createServer(function(req, res) {
console.log('the server is receiving data!\n');
req
.on('end', res.end.bind(res))
.pipe(process.stdout)
;
}).listen(3000).unref();
fs.createReadStream(TMP_FILE_PATH)
.pipe(request.post('http://127.0.0.1:3000'))
;
Run tor on the terminal and try the following. (Needs socks5-http-client
to connect to tor)
var request = require('../index.js');
var Agent = require('socks5-http-client/lib/Agent');
request.get({
url: 'http://www.tenreads.io',
agentClass: Agent,
agentOptions: {
socksHost: 'localhost', // Defaults to 'localhost'.
socksPort: 9050 // Defaults to 1080.
}
}, function (err, res) {
console.log(res.body);
});