一种在NodeJS中获取和发送Instagram直接消息的方法

z9ju0rcb  于 2023-03-08  发布在  Node.js
关注(0)|答案(3)|浏览(144)

有没有可能在NodeJS中通过编程来获取和发送Instagram的直接消息?我找不到任何关于这个主题的最新答案,所以决定在这里问一问。
现在我知道有:

  1. Instagram应用程序接口
  2. FB Instagram API(图形API)
  3. instagram私有应用程序接口包
    据我所知,第一个和第二个没有直接消息的api。第三个有点可疑。很难说它到底是如何工作的。Instagram允许开发者使用这个库吗?
icnyk63a

icnyk63a1#

如果您使用instagram-private-api,则可以通过以下方式发送直接消息:

const userId = await ig.user.getIdByUsername('username');
const thread = ig.entity.directThread([userId.toString()]);
await thread.broadcastText('Message from node');

(来源:https://github.com/dilame/instagram-private-api/issues/792

rqmkfv5c

rqmkfv5c2#

从2021年8月16日起,你可以通过官方API发送IG消息。
以下是官方“开发者FACEBOOK”网站上的一段话:“自2021年8月16日起,所有Instagram商业账户都可以连接到Instagram的Messenger API。”

pkwftd7m

pkwftd7m3#

包含NodeJS和instagram-private-API的完整代码

require("dotenv").config();
const { IgApiClient } = require("instagram-private-api");

const postToInsta = async (orderDetails) => {
  try {
    //Contect Instagram API Client
    const ig = new IgApiClient();
    ig.state.generateDevice(process.env.IG_USERNAME);
    await ig.account.login(process.env.IG_USERNAME, process.env.IG_PASSWORD);

    //Set user ID
    const userId = await ig.user.getIdByUsername("said user");
    const thread = ig.entity.directThread([userId.toString()]);

    //Send Mesage
    await thread.broadcastText("Message from node");
    return true;
  } catch (err) {
    return err;
  }
};

const instaPost = postToInsta().then(function (instaPost) {
  if (instaPost == true) {
    console.log(`Message Sent Succesfully`);
  }
});

只需使用以下命令在.env文件中设置环境变量

IG_USERNAME = "<username>"
IG_PASSWORD = "<password>"

下载

npm i instagram-private-api

文件--

https://www.npmjs.com/package/instagram-private-api

相关问题