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



是否可以在nodejs中以编程方式获取并发送Instagram直接消息?我找不到有关该主题的最近答案,因此决定在这里询问。

现在我知道有:

  1. instagram api
  2. FB Instagram API(Graph API(
  3. Instagram-Private-API软件包

我知道,第一和第二没有直接消息的API。第三个有点怀疑。很难说出它的工作原理。使用此lib的开发人员可以使用Instagram?

如果使用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(

截至2021年8月16日,您可以通过官方API发送IG消息。

这是官方" Facebook fooke for Developers"的报价。网站:"所有Instagram业务帐户都可以连接到截至2021年8月16日的Instagram的Messenger API。"(Instagram消息传递(

带有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

最新更新