【问题标题】:Bot that change twitter profile picture更改 Twitter 个人资料图片的机器人
【发布时间】:2019-09-14 01:32:19
【问题描述】:

嘿,我想用 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.
});

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

【问题讨论】:

  • 您所说的“似乎有效,但我的头像没有改变”是什么意思?这对我来说听起来很糟糕。您是否看到任何错误?调试和评估变量有什么帮助吗?
  • @JeffMergler 很好,当我执行代码时,没有错误,但我的个人资料图片上没有任何反应
  • 您阅读过文档吗? developer.twitter.com/en/docs/accounts-and-users/… : "配置文件的头像图像,base64 编码。必须是小于 700 KB 的有效 GIF、JPG 或 PNG 图像。宽度大于 400 像素的图像将按比例缩小。"跨度>
  • @JeffProd 是的尝试我将我的实际个人资料图片更改为另一张,并尝试用我使用的“正常”图片更新它,但它没有生效,我没有看到任何错误信息

标签: javascript node.js twitter bots


【解决方案1】:

如文档中所述,图像必须采用 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');
});

【讨论】:

  • 谢谢老兄,抱歉误导了大声笑我不太擅长,我认为我可以直接使用作为个人资料图片的图像
  • 我收到另一个错误“JSON decode error: Twitter HTTP response body is not valid JSON'”你没有收到任何错误?
  • 不,我没有错误。请尝试“npm install twit”。
  • 我删除了我拥有的版本并重新安装它,它可以工作,谢谢 idk 为什么它以前不想工作
猜你喜欢
  • 2021-09-25
  • 1970-01-01
  • 2018-01-16
  • 2014-12-15
  • 1970-01-01
  • 2014-09-15
  • 2021-08-13
  • 2011-02-14
  • 1970-01-01
相关资源
最近更新 更多