fs = require('fs') | |
path = require('path') | |
request = require('request') | |
class twitter_update_with_media | |
constructor: (@auth_settings) -> | |
@api_url = 'https://api.twitter.com/1.1/statuses/update_with_media.json' | |
post: (status, file_path, callback) -> | |
r = request.post(@api_url, oauth:@auth_settings, callback) | |
form = r.form() | |
form.append('status', status) | |
form.append('media[]', fs.createReadStream(path.normalize(file_path))) | |
module.exports = twitter_update_with_media |
// Generated by CoffeeScript 1.6.3 | |
(function() { | |
var fs, path, request, twitter_update_with_media; | |
fs = require('fs'); | |
path = require('path'); | |
request = require('request'); | |
twitter_update_with_media = (function() { | |
function twitter_update_with_media(auth_settings) { | |
this.auth_settings = auth_settings; | |
this.api_url = 'https://api.twitter.com/1.1/statuses/update_with_media.json'; | |
} | |
twitter_update_with_media.prototype.post = function(status, file_path, callback) { | |
var form, r; | |
r = request.post(this.api_url, { | |
oauth: this.auth_settings | |
}, callback); | |
form = r.form(); | |
form.append('status', status); | |
return form.append('media[]', fs.createReadStream(path.normalize(file_path))); | |
}; | |
return twitter_update_with_media; | |
})(); | |
module.exports = twitter_update_with_media; | |
}).call(this); |
twitter_update_with_media = require 'twitter_update_with_media' | |
tuwm = new twitter_update_with_media({ | |
consumer_key: '...' | |
consumer_secret: '...' | |
token: '...' | |
token_secret: '...' | |
}) | |
tuwm.post('This is a test', '/path_to_image.png', (err, response) -> | |
console.log(err) if err | |
console.log(response) | |
) |
var twitter_update_with_media = require('twitter_update_with_media'); | |
var tuwm = new twitter_update_with_media({ | |
consumer_key: '...', | |
consumer_secret: '...', | |
token: '...', | |
token_secret: '...' | |
}); | |
tuwm.post('This is a test', '/path_to_image.png', function(err, response) { | |
if (err) { | |
console.log(err); | |
} | |
console.log(response); | |
}); |
Hi, I installed request module as suggested by you. Then I created the following 2 .js files in the folder C:\node_modules\request:
usage.js
twitter_update_with_media.js
I updated the consumer key, secret etc. in usage.js and then ran usage.js from command prompt. I am getting the following error:
C:>node node_modules\request\usage.js
module.js:340
throw err;
^
Error: Cannot find module 'twitter_update_with_media'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (C:\node_modules\request\usage.js:1:95)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Please note that I have created some basic bots which search for tweets and then retweet/reply and have these working satisfactorily (using twit module). However, I want to post media (use update with media) and couldn't figure out how to do it. So I installed request module, but can't seem to figure out how it works too.
Help will be appreciated.
Thanks.
Thank you for sharing this.
This is now deprecated for media/upload -> statuses/update (two separate POSTs)
Could you update this module for that?
It worked for me. BIG thanks much to you!!! :-)