Android:如何以编程方式检查WhatsApp上的电话号码是否在线?

6 api android whatsapp

如何以编程方式检查WhatsApp上的联系电话是否在线

我在Google上进行搜索,发现了另一个应用程序,当输入的联系电话在线时会发出通知,但是我想通过编程方式知道这一点,以便可以在我的应用程序中实现。

注意:-如果存在这种应用程序,则必须解决我的问题。

我在SO上发现了另一个问题,但答案与问题中所问的内容完全无关,但该答案有4个投票并且被OP接受,我不知道怎么做?

那么,那里有可用的吗?还是任何意图行动?

sha*_*eep 8

知道账户在线状态仍然是一个私有 API。所以你不能以“合法”的方式做到这一点。

但是当然 WhatsApp 和您提到的其他应用程序会这样做。所以他们知道怎么做。

如果您想知道它们如何满足您的要求,您必须对它们进行逆向工程。

您可以做的是知道某个号码是否是有效的 WhatsApp 用户。

根据文档,您必须拥有Facebook WhatsApp Buisiness API

https://developers.facebook.com/docs/whatsapp/api/reference/

WhatsApp 是一种快速、安全且可靠的方式,可让企业接触全球客户。本指南介绍了企业如何使用 WhatsApp Business API 与客户互动。

此版本的 WhatsApp Business API 使用具有 JSON 数据格式的 REST API 架构。API 遵循标准的 HTTP 请求-响应交换。

一旦您拥有有效的企业帐户,您就可以查询Contacts联系人)节点

将联系人节点用于以下目的:

验证数据库中的电话号码是否属于有效的 WhatsApp 帐户。在向用户发送消息之前,您必须确保状态有效。获取电话号码的 WhatsApp ID。发送消息、使用通知和与群组合作都需要 WhatsApp ID。

从 doc 做这样的 POST 请求:

POST /v1/contacts

{
   "blocking": "wait",
   "contacts": [
      "16315551003",
      "1-631-555-1002",
      "+54 9 11 5612-1008",
      "+1 (516) 283-7151"
   ] 
}
Run Code Online (Sandbox Code Playgroud)

您可以获得这样的信息:

响应 在您发送检查联系人的请求后,您将收到包含所请求号码当前状态的响应。新的联系人通常会处于处理状态,因为应用程序会异步确定这些号码是否属于有效的 WhatsApp 帐户。

如果您在请求中使用 "blocking": "wait" 选项,则响应现在是同步的,因此只有在确定所有数字的状态后才会生成响应。这意味着如果有新联系人,请求将需要更长的时间才能返回,但您不会看到返回的“处理”值。下面的示例代码演示了这种行为。

{
   "contacts": [
      {
         "input": "1-631-555-1002",
         "status": "invalid"
      },
      {
         "input": "6315551003",
         "status": "valid"
         "wa_id": "16315551003"
      },
      {
         "input": "+54 9 11 5612-1008",
         "status": "invalid"
      },
      {
         "input": "+1 (516) 283-7151",
         "status": "valid"
         "wa_id": "15162837151"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

  • 但是我怎么知道任何号码是否在线? (2认同)