#javascript #node.js #twitter #bots
#javascript #node.js #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.
});
ну, кажется, это работает, но изображение моего профиля не меняется
Комментарии:
1. Что вы подразумеваете под «кажется, работает, но изображение моего профиля не меняется»? Для меня это звучит неубедительно. Вы видите какие-либо ошибки? Есть ли что-нибудь полезное, если вы отлаживаете и оцениваете переменные?
2. @JeffMergler ну, когда я выполняю код, ошибки нет, но на моем изображении профиля ничего не происходит
3. Вы читали документацию? developer.twitter.com/en/docs/accounts-and-users /… : «Изображение аватара для профиля в кодировке base64. Должно быть допустимое изображение в формате GIF, JPG или PNG размером менее 700 килобайт. Изображения шириной более 400 пикселей будут уменьшены.»
4. @JeffProd да, чтобы попробовать, я сменил свою фактическую фотографию профиля на другую и попытался обновить ее на «обычную», которую я использую, но это не вступило в силу, и я не вижу никакого сообщения об ошибке
Ответ №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');
});
Комментарии:
1. спасибо, чувак, извини, что ввел в заблуждение, лол, я не очень хорош в этом, я думал, что могу напрямую использовать изображение, которое было изображением профиля
2. я получил еще одну ошибку «Ошибка декодирования JSON: в теле HTTP-ответа Twitter был недопустимый JSON». вы не получили никакой ошибки?
3. Нет, у меня не было ошибок. Пожалуйста, попробуйте «npm install twit».
4. я удалил имеющуюся у меня версию и переустановил ее, и она работает, спасибо idk, почему она не хотела работать раньше