Как я могу комментировать пост и читать сообщения в Instagram с запросами, не используя API Graph Facebook? - PullRequest
0 голосов
/ 13 января 2020

Я могу войти в систему и просматривать сообщения, но я не могу прагматично комментировать эти сообщения и не могу понять, как читать прямые сообщения. Вот мой код для входа и получения медиа-идентификатора.

// 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, но я не уверен, как они работают и как их копировать в моем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...