首页 > 解决方案 > 更改 Twitter 个人资料图片的机器人

问题描述

嘿,我想用 nodejs 编写一个机器人来更改个人资料图片

var Twitter = require('twitter');
var data = require('fs').readFileSync('image1.png');

var client = new Twitter({
    consumer_key: 'asd',
    consumer_secret: 'asd',
    access_token: 'asd',
    access_token_secret: 'asd'
});

client.post('account/update_profile_image', {image: data},  function(error, tweet, response) {
  console.log("done");  // Raw response object.
});

好吧,它似乎有效,但我的个人资料图片没有改变

标签: javascriptnode.jstwitterbots

解决方案


如文档中所述,图像必须采用 base64 编码。这是一个工作代码:

var fs = require('fs');
var Twit = require('twit'); // npm install twit

var T = new Twit({
    consumer_key:         '*',
    consumer_secret:      '*',
    access_token:         '*',
    access_token_secret:  '*'
});

var image64str = fs.readFileSync('kitten.jpg', {encoding: 'base64'});

T.post('account/update_profile_image', { image: image64str }, function(err) {
    if(err) {console.error(err); return;}
    console.log('done');
});

推荐阅读