2017-02-07 1 views
5

après long Googleing qui n'a pas apporté le résultat que j'espérais, je ai deux questions sur l'accès WhatsApp à partir d'une autre application Android.Android - WhatsApp Group ID/discussion de groupe ouverte

d'abord tout ce que je veux expliquer mon état de développement actuel:

A écrit une application avec laquelle vous pouvez partager un texte via WhatsApp. L'application fait exactement ce qu'il est censé faire (comme je suis complètement nouveau pour le développement Android). La première façon que j'ai trouvée a été décrite dans "FAQ pour les développeurs Android" de WhatsApp. Il crée une nouvelle intention, prefills le texte qui devrait être envoyer et ouvre le sélecteur de contact:

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 

googlé et googlé donc j'ai trouvé un moyen (extrait de code) pour ouvrir une discussion personnelle spécifique et préremplir avec le texte Je veux partager:

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); 
} 

Mes questions sont les suivantes:

  1. Comment puis-je obtenir l'ID WhatsApp d'un groupe WhatsApp? Puis-je ouvrir le chat de groupe et coller mon texte juste en remplaçant le numéro de téléphone dans la méthode 2 par l'ID du groupe? Ou y a-t-il une autre façon d'ouvrir et de pré-remplir une discussion de groupe?

Répondre

1

Vous devez utiliser le lien de groupe.
Lorsque l'utilisateur installe votre application, vous devez lui demander de copier le lien de groupe à partir des informations du groupe WhatsApp, puis de le stocker pour accéder à ce groupe directement à partir de votre application.
Ce lien n'est visible que par les administrateurs des groupes, donc si l'utilisateur n'est pas administrateur, vous devez lui demander de demander le lien à l'administrateur.
Bien que ce lien ait été conçu par whatsapp pour l'invitation aux groupes, il ouvre la discussion de groupe souhaitée.

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); 
+0

Il est correct que ce code ouvre le groupe de discussion spécifié. Mais je ne suis pas en mesure de pré-remplir le texte dans le chat. Y a-t-il un moyen de remplir le texte aussi? J'ai essayé le même que dans le post ('intent.putExtra (Intent.EXTRA_TEXT," myText ")') mais cela ne fonctionne pas. –

+0

Je crains que cela ne peut pas être fait avec le WhatsApp actuel "api". C'est le moyen le plus proche d'automatiser un chat en groupe. Je comprends les gens de Facebook qui essaient d'empêcher WhatsApp spam et tout, mais ils devraient comprendre que nous les programmeurs ont besoin d'une API plus ouverte. – Ramiro

+0

Mais merci quand même! Si vous trouvez un moyen de le faire à l'avenir, ce serait génial si vous le partagez ici. –