【问题标题】:Script that change twitter profile picture更改 Twitter 个人资料图片的脚本
【发布时间】:2021-09-25 05:24:17
【问题描述】:

我正在使用 twitter-lite library,我想更新 Twi 个人资料图片。

目前我正在尝试这个:

var fs = require('fs');
var Twit = require('twitter-lite'); 

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');
});

但我收到以下错误:

/Users/huyvunguyen/node_modules/node-fetch/lib/index.js:272 return Body.Promise.reject(new FetchError(invalid json response body at ${_this2.url} reason: ${err.message}, 'invalid-json')); ^ FetchError:https://api.twitter.com/1.1/account/update_profile_image.json 处的无效 json 响应正文原因:JSON 输入意外结束 在 /Users/huyvunguyen/node_modules/node-fetch/lib/index.js:272:32 在 processTicksAndRejections (node:internal/process/task_queues:96:5) { 类型:'无效的 json' }

有人知道我该如何调试吗?

【问题讨论】:

    标签: javascript twitter


    【解决方案1】:

    我不知道究竟是什么导致了错误。它也发生在我的最后。

    但是twitter-api-client 可以完美地处理相同的代码。也许这是一个特定于库的错误。

    此外,twitter-lite 中的 .post 方法不接受回调。更多信息here

    以下是您可以使用的:

    var fs = require('fs');
    const { TwitterClient } = require('twitter-api-client')
    
    var image64str = fs.readFileSync('pic.jpg', {encoding: 'base64'});
    
    client = new TwitterClient({
        apiKey: '',
        apiSecret: '',
        accessToken: '',
        accessTokenSecret: ''
    })
    
    client.accountsAndUsers.accountUpdateProfileImage({image: image64str}).catch(e=>console.log(e)).then(res => console.log(res))
    

    【讨论】:

      猜你喜欢
      • 2019-09-14
      • 1970-01-01
      • 2014-12-15
      • 2018-01-16
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 2023-03-28
      • 2014-09-15
      相关资源
      最近更新 更多