Spanish Enviar mensajes masivos por Whatsapp

Hackito

Member
Hola.. Es posible enviar mensajes a diferentes contactos de Whatsapp al mismo tiempo desde una aplicación?
 

GeoT

Active Member
Licensed User
Longtime User
Hola Hackito.

Creo que no.

Por lo que sé, para enviar un mensaje a Whatsapp, necesitas utilizar la API que proporciona Whatsapp así como un Intent.
Pero a un contacto a la vez, y no sé si se puede enviar solamente texto.
Quizás se pueda enviar a varios contactos con un bucle, si te lo permite la API de Whatsapp, pues suelen poner limitaciones, creo.
Deberías estudiar su API.

Saludos.
 

GeoT

Active Member
Licensed User
Longtime User
Rehola.
Como rectificar es de sabios, sí que se puede enviar un mensaje a varios contactos a la vez, pero con la intervención del usuario, no de manera automática, que yo sepa.
Y sin utilizar la API de Whatsapp, en este caso.

Combinando los códigos del foro y corrigiendo alguno, lo he conseguido.
Pero vas a para a una activity de Whatsapp para finalizar el proceso.

Si te interesa, estoy acabando de pulir el ejemplo.

Saludos.
 

Hackito

Member
Buenas.. sinceramente me interesa bastante.. yo pude enviar a un solo contacto, probé con lo del bucle que mencionaste y tampoco pude enviar a más de una persona.. te agradecería si pudieras enviar el ejemplo que tienes para analizar y copiarlo, jeje.. desde ya Muchas Gracias
 

GeoT

Active Member
Licensed User
Longtime User
Hola Hackito.
Adjunto aquí el ejemplo.
Espero que te sirva.
 

Attachments

  • WhatsappMessage.zip
    289.1 KB · Views: 243

GeoT

Active Member
Licensed User
Longtime User
El texto en el Manifest Editor
B4X:
AddApplicationText(
  <provider
  android:name="android.support.v4.content.FileProvider"
  android:authorities="$PACKAGE$.provider"
  android:exported="false"
  android:grantUriPermissions="true">
  <meta-data
  android:name="android.support.FILE_PROVIDER_PATHS"
  android:resource="@xml/provider_paths"/>
  </provider>
)
CreateResource(xml, provider_paths,
   <external-files-path name="name" path="shared" />
)
Permite que se puedan enviar archivos a aplicaciones externas accediendo con FileProvider al la carpeta interna "shared", declarada en el Starter

Se debe utilizar la función
B4X:
Sub CreateFileProviderUri (Dir As String, FileName As String) As Object
  
    Dim FileProvider As JavaObject
    Dim context As JavaObject
    context.InitializeContext
    FileProvider.InitializeStatic("android.support.v4.content.FileProvider")
    Dim f As JavaObject
    f.InitializeNewInstance("java.io.File", Array(Dir, FileName))
    Return FileProvider.RunMethod("getUriForFile", Array(context, Application.PackageName & ".provider", f))
End Sub
para crear el FileProviderUri del archivo a enviar con el intent, en caso de enviar un archivo, para que no dé error

Saludos
 

Hackito

Member
Hola Hackito.
Adjunto aquí el ejemplo.
Espero que te sirva.
Excelente... Sinceramente muchas muchas Gracias!!! voy a investigar un poco sobre provider y sus utilidades.. lo veo como un recurso muy poderoso realmente... quisiera consultarte algo más, es posible seleccionar desde la aplicación los números a los q se va a enviar y que no estén registrados en el teléfono? por ejemplo tener una base de datos externa y de ahí ir recogiendo los números... y enviar los mensajes sin entrar directamente al Whatsapp?
 

GeoT

Active Member
Licensed User
Longtime User
De nada Hackito.
No he encontrado ninguna solución que envíe los mensajes sin entrar directamente a Whatsapp.

Con el ejemplo que te compartí, solamente se puede enviar mensajes a números de teléfono concretos añadiendo la línea
B4X:
i.putExtra("jid", "XXxxxxxxxxx@s.whatsapp.net")     'Número en formato internacional. XX: Prefijo del país. xxxxxxxxx: número de teléfono.
pero solamente a números de contactos que estén en la agenda de tu smartphone

Éstos dos ejemplos, en cambio, sí que envían a números de teléfono que no estén en tu agenda, pero también acaban pasando por Whatsapp.

WhatsApp: Send Message to specific phone number

WhatsApp Library

Saludos.
 

GeoT

Active Member
Licensed User
Longtime User
Hola Hackito.
Si son esas las soluciones que buscabas y te lo resolvió, puedes añadir la palabra Solucionado al título de este hilo.

Saludos.
 

josejad

Expert
Licensed User
Longtime User
puedes añadir la palabra Solucionado al título de este hilo.
Creo que al no tener licencia no puede editar el titul.

salidos,
 

Situ LLC

Active Member
Licensed User
Got buenas.
 
Top