Android - WhatsApp Group ID / Открыть групповой чат

После долгого поиска в Google, который не принес результата, я надеялся, что у меня возникнет два вопроса о доступе к WhatsApp из другого приложения для Android.

Прежде всего я хочу объяснить мой текущий статус разработки:

Написал приложение, с помощью которого вы можете поделиться текстом через WhatsApp. Приложение точно делает то, что должно делать (так как я совершенно новичок в разработке для Android). Первый способ, который я нашел, был описан в "FAQ для разработчиков Android" в WhatsApp. Он создает новое намерение, предварительно заполняет текст, который должен быть отправлен, и открывает сборщик контактов:

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?
  2. Могу ли я открыть групповой чат и вставить свой текст, просто заменив номер телефона в методе 2 на идентификатор группы? Или есть другой способ открыть и заполнить групповой чат?

3 ответа

Вы должны использовать групповую ссылку.
Когда пользователь устанавливает ваше приложение, вы должны попросить его скопировать ссылку на группу из информации о группе 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);

я использую Tasker, чтобы получить jid группы, особенно группы, администратором которой я НЕ являюсь. вам нужно сделать это вручную. поэтому, если у вас есть 10 групп, вам нужно будет сделать это 10 раз. создайте задачу в Tasker, щелкните приложение, щелкните ярлык, щелкните увеличительное стекло, найдите группу, щелкните группу, внутри длинной строки будет отображаться jid. он должен заканчиваться на %40, поэтому извлеките jid вручную.

Чтобы получить информацию о группах, в которых я состою (или даже покинула), я использую неофициальное решение. Мне нужен был набор функций для автоматизации групп в Whatsapp, поэтому это решение меня устроило. Специально для получения идентификаторов групп я использую метод «Получить группы». Примерно так это выглядит.

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

В ответ приходит название группы, идентификатор группы, дата создания, последнее сообщение, все участники, значок и многое другое. На самом деле вы можете протестировать это самостоятельно здесь https://whapi.readme.io/reference/getgroups , но вам понадобится токен в сервисе.

И дальше вы можете работать с этой информацией как угодно. У меня есть подсчет участников и система распределения + создание новых групп автоматически. Существует множество методов автоматизации, вы можете посмотреть здесь: https://whapi.cloud/docs#/Groups/getGroups .

Другие вопросы по тегам