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!
Envio de SMS **SOLUCIONADO**
-
- Posts: 44
- Joined: Fri Feb 03, 2006 6:42 pm
- Location: FORMOSA - ARGENTINA
Envio de SMS **SOLUCIONADO**
Last edited by IVAN TRACHTA on Fri Jan 27, 2017 10:43 pm, edited 1 time in total.
Re: Envio de SMS
Busca informacion sobre la function
//nRet := hb_ProcessRun( cCommand, cStdIn, @cStdOut, @cStdErr, lDetach )
e investiga despues el contenido de cStdOut
//nRet := hb_ProcessRun( cCommand, cStdIn, @cStdOut, @cStdErr, lDetach )
e investiga despues el contenido de cStdOut
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 44
- Joined: Fri Feb 03, 2006 6:42 pm
- Location: FORMOSA - ARGENTINA
Re: Envio de SMS
Gracias Cristóbal
Esa es una Función de Harbour, estará documentada?
Esa es una Función de Harbour, estará documentada?
Re: Envio de SMS
Por supuesto
Google es nuestro amigo
Google es nuestro amigo
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 44
- Joined: Fri Feb 03, 2006 6:42 pm
- Location: FORMOSA - ARGENTINA
Re: Envio de SMS
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?
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
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 ... x&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 ) )
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 ... x&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 ) )
Mario Antonio González Osal
Venezuela
m a g 0 7 1 @ g m a i l. c o m
Venezuela
m a g 0 7 1 @ g m a i l. c o m
-
- Posts: 44
- Joined: Fri Feb 03, 2006 6:42 pm
- Location: FORMOSA - ARGENTINA
Re: Envio de SMS
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!!
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!!
-
- Posts: 44
- Joined: Fri Feb 03, 2006 6:42 pm
- Location: FORMOSA - ARGENTINA
Re: Envio de SMS
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:
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
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:
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
- TOTOVIOTTI
- Posts: 334
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
Re: Envio de SMS
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
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**
Ivan me interesa, puedes compartir el codigo completo
gracias
gracias