Android - WhatsApp群组ID /开放群组聊天

9vw9lbht  于 2023-09-29  发布在  Android
关注(0)|答案(3)|浏览(182)

经过长时间的谷歌搜索,并没有带来我希望的结果,我有两个关于从另一个Android应用程序访问WhatsApp的问题。
首先我想说明一下我目前的发展状况:
写了一个应用程序,你可以通过WhatsApp分享一些文本。应用程序正是在做它应该做的事情(因为我对Android开发完全是新手)。我发现的第一种方法是在WhatsApp的“Android开发者常见问题”中描述的。它会创建一个新的Intent,预填充应发送的文本并打开联系人选取器:

int pos = 0; //0 is just an example value
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
PushAlert pa = pushAlerts.get(pos); //get my text object from ArrayList
sendIntent.setPackage("com.whatsapp"); //directly choose WhatsApp as sharing app
sendIntent.putExtra(Intent.EXTRA_TEXT, "*" + pa.getTitle() + " * \n +" + pa.getContent()); //filling 
sendIntent.setType("text/plain");
startActivity(sendIntent); //Open contact picker

谷歌和谷歌,所以我找到了一种方法(代码片段)打开一个特定的个人聊天,并预先填写我想分享的文本:

private void openWhatsAppChat(){
  Intent sendIntent = new Intent("android.intent.action.SEND");
  sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.ContactPicker"));
  sendIntent.setType("text");
  sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators("phone number")+"@s.whatsapp.net"); //number without '+' prefix and without '0' after country code
  sendIntent.putExtra(Intent.EXTRA_TEXT,"sample text you want to send along with the image");
  startActivity(sendIntent);
}

所以我的问题是:
1.如何获取WhatsApp群组的WhatsApp ID?
1.我可以打开群聊并粘贴我的文本,只是将方法2中的电话号码替换为群ID吗?或者是否有其他方法来打开和预填充群聊?

uelo1irk

uelo1irk1#

您必须使用组链接。
当用户安装你的应用程序时,你应该要求他们从whatsapp群组信息中复制群组链接,然后你存储它以直接从你的应用程序访问该群组。
此链接仅对组管理员可见,因此如果用户不是管理员,您应该指示他们向管理员询问链接。
虽然这个链接是whatsapp用来邀请群组的,但它可以打开所需的群组聊天。

Intent intentWhatsapp = new Intent(Intent.ACTION_VIEW);
String url = "https://chat.whatsapp.com/<group_link>";
intentWhatsapp.setData(Uri.parse(url));
intentWhatsapp.setPackage("com.whatsapp");
startActivity(intentWhatsapp);
cbwuti44

cbwuti442#

我使用Tasker来获取组的jid,尤其是我不是管理员的组。你需要手动操作所以如果你有10组,你需要做10次。在tasker中创建一个任务,点击app,点击快捷方式,点击放大镜,搜索群组,点击群组,jid会显示在长字符串中。它应该以%40结束,因此手动提取jid

3npbholx

3npbholx3#

为了获得我所属(甚至离开)的组的信息,我使用非官方的解决方案。我需要一组功能来自动化WhatsApp中的群组,所以这个解决方案适合我。具体来说,为了获取组的id,我使用了“Get groups”方法。

import requests
    
    url = "https://gate.whapi.cloud/groups?token=your_token"
    
    headers = {"accept": "application/json"}
    
    response = requests.get(url, headers=headers)
    
    print(response.text)

作为响应,出现了群组名称、群组ID、创建日期、最后一条消息、所有成员、图标和许多其他内容。事实上,您可以在https://whapi.readme.io/reference/getgroups中自己测试它,但您需要在服务中使用令牌。
然后你可以用任何你想要的方式来处理这些信息。我有一个计数的参与者和分配系统+创建新的组自动。有很多自动化的方法,你可以在这里看到:https://whapi.cloud/docs#/Groups/getGroups

相关问题