Page 1 of 1
Envio de SMS **SOLUCIONADO**
Posted: Thu Jan 26, 2017 2:24 pm
by IVAN TRACHTA
Buenas!
Tengo un cliente que ha contratado un servicio de envío de SMS a clientes.
El servicio incluye una página en donde se van cargando los # de teléfonos y el txt que se desea enviar y simplemente hace el trabajo.
Pero además tiene un modelo para integrar esto a un sistema propio.
Yo lo he probado y efectivamente funciona, envio desde mi sistema el comando x ej:
http://servicio.smsmasivos.com.ar/enviar_sms.asp?,; api=1&;
test=1&;
usuario=xxxx&;
clave=cccc&;
tos=1144445555&;
texto=Mensaje
y el mensaje se envía sin problemas.
Sólo tengo 2 cuestiones..
1) obviamente al enviar esto me abre el navegador por defecto, no se si se puede manejar que lo haga en background o segundo plano.
2) me da una respuesta que es simplemente un texto pero dentro de la página que he abierto.. Por ej si todo fue bien, la respuesta es sólo "OK"
Cómo podría tomar o leer el contenido de una pagina web?
O sea lo ideal seria poder mandar el comando, y tomar la respuesta y que todo sea invisible al usuario del sistema mío. Y si no es invisible.. que se abra el navegador.. enviar los datos, tomar la respuesta y cerrar desde mi programa el mismo.
No se si se entiene, espero que si.
Un abrazo!
Re: Envio de SMS
Posted: Thu Jan 26, 2017 6:02 pm
by cnavarro
Busca informacion sobre la function
//nRet := hb_ProcessRun( cCommand, cStdIn, @cStdOut, @cStdErr, lDetach )
e investiga despues el contenido de cStdOut
Re: Envio de SMS
Posted: Thu Jan 26, 2017 10:00 pm
by IVAN TRACHTA
Gracias Cristóbal
Esa es una Función de Harbour, estará documentada?
Re: Envio de SMS
Posted: Thu Jan 26, 2017 10:06 pm
by cnavarro
Por supuesto
Google es nuestro amigo
Re: Envio de SMS
Posted: Fri Jan 27, 2017 2:01 pm
by IVAN TRACHTA
Gracias Cristóbal
He estado viendo pero no la puedo probar, creo que uso una versión de Harbour muy antigua (por esto de cosa que funciona no se toca.. creo que nunca me motivé a actualizarla).
Me da Unresolved External esa función.. o hay que enlazar alguna lib en particular?
Re: Envio de SMS
Posted: Fri Jan 27, 2017 3:06 pm
by mag071
Saludos desde Venezuela.-
Yo hago algo parecido con un servicio aqui en Venezuela
METHOD Enviarsms(cOrden,cTlf) CLASS TServicio
LOCAL cMensa:=""
LOCAL cHost,lRet:=.F.
LOCAL oHttp,cFuncion,oError,cTextohtml,cXml,xDato,nReg:=0,nI:=0
if empty(cTlf)
msgstop("No hay celular para enviar mensaje","verifique la ficha")
Return Self
Endif
cMensa:="Informa%20=%20Se%20ha%20cargado%20la%20orden%20de%20servicio%20"+Alltrim(Oemtoansi(cOrden))+"%20"+;
"de%20fecha%20"+dtoc(date())+"%20"+;
"informaremos%20por%20esta%20via%20los%20avances%20de%20su%20servicio.%20Gracias%20por%20su"+"%20"+;
"confianza."
oHttp:=CreateObject("winhttp.winhttprequest.5.1")
oHttp:SetTimeouts(30000,30000,30000,30000)
cHost:="http://041x.com/secure/insert.php?uname=usuario041x&pass=xyz"
cFuncion:="&num=0"+Alltrim(cTlf)+"&msg="+cMensa
oHttp:Open("GET",Alltrim(cHost)+cFuncion,.f.)
Try
oHttp:Send()
Catch oError
MsgInfo("NO HAY CONEXION CON EL SERVIDOR CENTRAL ","INTENTE DE NUEVO ")
Return .F. //Aqui retornar false...
End
cTextoHTML:=oHttp:ResponseText()
cXML:=cTextoHTML
xDato:=GetStringFromXMl('[',']', cXML )
IF UPPER(xDato)<>"OK"
MSGSTOP("ERROR EN ENVIO DEL MENSAJE DE TEXTO","INFORME ESTE MENSAJE POR FAVOR")
Return lRet
ENDIF
Return Self
Function GetStringFromXMl( cInicio, cFinal, cString )
Local nInicio:=At( cInicio, cString ) + Len( cInicio )
Local nFinal :=At( cFinal, cString ) - nInicio
Return Alltrim( Substr( cString, nInicio, nFinal ) )
Re: Envio de SMS
Posted: Fri Jan 27, 2017 7:24 pm
by IVAN TRACHTA
Hola Mario
Creo que algo así es lo que estoy buscando.
Podrías adjuntarme la definición de la clase TServicio? y qué librerías enlazas para que esto funcione?
Para definir el objeto oHTTP ?
Gracias!!
Re: Envio de SMS
Posted: Fri Jan 27, 2017 10:42 pm
by IVAN TRACHTA
Con la ayuda de otro colega de otro foro encontre la solución. Facilísimo y simple.
Lo que buscaba. Funciona aparentemente sólo con Internet Explorer, pero es tan transparente al usuario que no importa.
Lo publico aca para que quede la solución, capaz le sirva a alguien:
[color=#FF0000]FUNCTION ConsultaWeb(cUrl)
LOCAL cError,oExplorer
LOCAL cResult
oExplorer := TOleAuto():New("InternetExplorer.Application")
oExplorer:Navigate(cUrl)
oExplorer:Visible:=.F. // IE invisible
// Las siguientes 4 lineas son para pausar la carga de una pagina, omitelas si no te son necesarias
//WaitSeconds(5) // deshabilito, no hace falta
WHILE oExplorer:Busy
HB_IDLESLEEP(1)
ENDDO
// Guardamos en texto del resultado de la web
cResult:=oExplorer:Document:Body:InnerText
oExplorer:End()
IF "OK"$cResult
ALERT("El envio del SMS fue un exito")
ENDIF
RETURN cResult
Re: Envio de SMS
Posted: Tue Jan 31, 2017 1:51 pm
by TOTOVIOTTI
Hola Ivan...
me interesa lo que publicas...
Serías tan amable de adjuntar un ejemplo completo del envío de SMS?
No entiendo como enlazas la función ConsultaWeb con el envío de los mensajes...
Gracias!
Roberto
Re: Envio de SMS **SOLUCIONADO**
Posted: Mon Mar 27, 2017 11:47 am
by jbrita
Ivan me interesa, puedes compartir el codigo completo
gracias