Я могу войти в систему и просматривать сообщения, но я не могу прагматично комментировать эти сообщения и не могу понять, как читать прямые сообщения. Вот мой код для входа и получения медиа-идентификатора.
// import axios from 'axios';
// import cheerio from 'cheerio';
const request = require('request-promise');
const cheerio = require('cheerio');
class Instagram {
async commentOnPost({ mediaURL, comment }) {
console.log("here commentPost");
let mediaId = await this.getMediaKey({ mediaURL });
// post comment
const url = `https://www.instagram.com/web/comments/${mediaId}/add/`;
const data = {
'comment_text': comment
}
let commentData;
try {
commentData = await this.session({
method: "POST",
url,
form: data,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Referer': "https://www.instagram.com/" + mediaURL
},
json: true
});
} catch (err) {
console.log(err);
}
console.log(commentData);
}
async function testCase() {
let i = new Instagram();
await i.login({ username: "username", password: "password" });
await i.getMediaKey({ mediaURL: "/p/B7PGlAKl5vx/" });
await i.commentOnPost({ mediaURL: "/p/B7PGlAKl5vx/", comment: "pogchamp!" });
}
};
Согласно журналам, код передает все правильно, но я получаю ошибку 403
при отправке запроса на комментарий к сообщению. Кто-нибудь имеет опыт работы с этим? Я видел такие библиотеки, как https://github.com/dilame/instagram-private-api
, но я не уверен, как они работают и как их копировать в моем коде.