Error en las pruebas de App

152 views
Skip to first unread message

Benjamin Rodriguez

unread,
Apr 11, 2013, 6:57:28 AM4/11/13
to sbpo...@googlegroups.com
Hola.

Lo primero de todo felicitar a Spotbros por el trabajo que están realizando y la novedad de que desarrolladores terceros podamos acceder a servicios Spotbros.

Estoy probando la SDK y he creado una APP con el código de ejemplo echobot.php
Tengo una carpeta llamada "spotbros" y dentro de esta la del SDK "SBClientSDK" y la de "examples" donde esta el php "echobot.php"
El caso es que en la web para desarrolladores en las opciones de la APP me sale el siguiente error:

A PHP Error was encountered
Severity: Notice
Message: Undefined index: totalFollowers
Filename: controllers/apps.php
Line Number: 25

A que puede ser debido ?

Un Saludo y enhorabuena por Spotbros.

jesus.h...@spotbros.com

unread,
Apr 11, 2013, 6:59:00 AM4/11/13
to sbpo...@googlegroups.com
Acabamos de solucionar ese fallo. De todas formas solo afectaba a la sección de estadísticas, así que no te preocupes.

Benjamin Rodriguez

unread,
Apr 11, 2013, 7:04:22 AM4/11/13
to sbpo...@googlegroups.com
Vaya rapidez .. jeje
Efectivamente ya no sale.
Muchas gracias.

Aprovecho para comentar otro fallo, que no se si es por no hacerlo bien o no.
Busco a través del buscador la APP con el nombre o por el código SBCode y no me sale !

Un Saludo.

Jesus Hernández

unread,
Apr 11, 2013, 7:06:43 AM4/11/13
to sbpo...@googlegroups.com
cuál es el SBCODE de tu app? Para que sea visible en el buscador, tienes que hacerla visible a través del portal (Perfil de app->Administración)


--
Has recibido este mensaje porque estás suscrito al grupo "sbportal" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a sbportal+u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Benjamin Rodriguez

unread,
Apr 11, 2013, 7:08:11 AM4/11/13
to sbpo...@googlegroups.com
UGD1USO
En principio esta seleccionado que sea visible !

Guillermo Barbero

unread,
Apr 11, 2013, 7:18:22 AM4/11/13
to sbpo...@googlegroups.com
Actualiza el perfil de tu app, has debido crearla en el momento en el que había un gap en el portal
--
 
Guillermo Barbero - Backend Team

Spotbros Technologies

  

Benjamin Rodriguez

unread,
Apr 11, 2013, 10:43:09 AM4/11/13
to sbpo...@googlegroups.com
Efectivamente ya se encuentra, realizando una búsqueda.
Muchas gracias.

Benjamin Rodriguez

unread,
Apr 11, 2013, 11:33:11 AM4/11/13
to sbpo...@googlegroups.com
Hola de nuevo.
Supuestamente al poner el ejemplo de "echobot.php" al escribir algo debería devolver lo escrito, pero no lo hace.
Que puede pasar ?
Un Saludo.

Guillermo Barbero

unread,
Apr 11, 2013, 11:39:59 AM4/11/13
to sbpo...@googlegroups.com
¿Qué te dice el log del servidor web? ¿cuál estás usando (apache/lighttpd/...)?

Benjamin Rodriguez

unread,
Apr 11, 2013, 12:09:27 PM4/11/13
to sbpo...@googlegroups.com
uso apache.
en el log del servidor no veo que arroje ningún error !

Jesus Hernández

unread,
Apr 11, 2013, 12:19:24 PM4/11/13
to sbpo...@googlegroups.com
Nuestros logs indican que las peticiones a tu servidor se hacen correctamente. Recuerda que en el constructor de la SBApp debes pasar como argumentos el SBCode y key que has obtenido del portal. Me estoy refiriendo a esta linea:

$echoBot=new EchoBot([SBCODE],[KEY]);

Comprueba eso y coméntanos. Por cierto, hemos creado un spot para dar soporte. Su sbcode es E43ZFZJ. Te animo a que te metas




Benjamin Rodriguez

unread,
Apr 11, 2013, 12:41:51 PM4/11/13
to sbpo...@googlegroups.com
Tengo puesto el SBCODE y el KEY.
Y nada.
Me he unido al Spot, gracias.

Dejo el fuente actual con los códigos con xxxx.

<?php
require_once('../SBClientSDK/SBApp.php');
class EchoBot extends SBApp
{
protected function onError($errorType_)
{
error_log($errorType_);
}
protected function onNewVote(SBUser $user_,$newVote_,$oldRating_,$newRating_)
{
$this->replyOrFalse("Gracias por votar con ".$newVote_." estrellas");
}
protected function onNewContactSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Hola ".$userName."! Bienvenido a TuWebEnLaRed!");
}
}
protected function onNewContactUnSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Hasta otra ".$userName."!");
}
}
protected function onNewMessage(SBMessage $msg_)
{
if(($messageText = $msg_->getSBMessageTextOrFalse()))
{
$this->replyOrFalse("echo: ".$messageText);
}
/* destination user's sbcode 
$sbcode = "DI";
// send message 
if (!$this-> sendTextMessageOrFalse($messageText, $sbcode)) 
{error_log ("Codigo no encontrado: ".$sbcode);}
*/
}
}
$echoBotSBCode="XXXXXXX";
$echoBotKey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$echoBot=new EchoBot($echoBotSBCode,$echoBotKey);
$echoBot->serveRequest($_GET["params"]);
?>

Guillermo Barbero

unread,
Apr 11, 2013, 12:50:03 PM4/11/13
to sbpo...@googlegroups.com
El código está bien. Debería salirte por el log de errores "Codigo no encontrado: DI".

Prueba a aumentar el nivel de log a ver si te dice algo:
error_reporting(E_ALL)

¿Qué sistema operativo utilizas?

Jaime Sánchez Force

unread,
Apr 11, 2013, 12:59:18 PM4/11/13
to sbpo...@googlegroups.com
Yo tambien tengo el problema de Benjamin Rodriguez, el servidor es accesible, esta bien configurado con los parametros del sbcode y el key, cuando escribo a la aplicacion, sale el simbolo azul de que se ha mandado, pero no devuelve nada.

El SBCode es KLLC9R9
Message has been deleted

Benjamin Rodriguez

unread,
Apr 11, 2013, 1:06:55 PM4/11/13
to sbpo...@googlegroups.com
Estoy usando un hosting en internet, que tiene instalado CloudLinuxServer
He probado a dar permisos 755 al fichero, por si acaso, y nada.
Poner el error_reporting .. no se si me lo permite el hosting, voy a mirar a ver.
Tengo accesso SSH al server.


El jueves, 11 de abril de 2013 18:50:03 UTC+2, Guillermo Barbero escribió:

Guillermo Barbero

unread,
Apr 11, 2013, 1:12:02 PM4/11/13
to sbpo...@googlegroups.com
Ha comentado Jaime en el spot de Developers que cambiando el host de la public-api a http://sbmail.me le ha funcionado.

Esa configuración está en SBClientSDK/includes/SBTypes.php, línea 53 (SB_WEBSERVICE_ADDR). Si te funciona con eso, yo lo dejaría en https y cambiaría la configuración de apache para habilitar ssl, que deberían ir por ahí los tiros.

Benjamin Rodriguez

unread,
Apr 11, 2013, 1:17:57 PM4/11/13
to sbpo...@googlegroups.com
nada.
tampoco funciona eso.

Guillermo Barbero

unread,
Apr 11, 2013, 1:26:40 PM4/11/13
to sbpo...@googlegroups.com
ejecuta un script en php que llame a la función get_loaded_extensions() e imprime el array que te devuelve

Jaime Sánchez Force

unread,
Apr 11, 2013, 2:32:26 PM4/11/13
to sbpo...@googlegroups.com
[11-Apr-2013 18:19:15 UTC] CURL_ERROR: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

[11-Apr-2013 18:19:15 UTC] 100003

Ahora en un apache mas accesible que tengo, he visto que me salta esta traza. Curl lo tengo instalado, pero estoy un poco verde con esto. Si alguien me puede echar un cable se lo agradeceria

Jaime Sánchez Force

unread,
Apr 11, 2013, 3:00:34 PM4/11/13
to sbpo...@googlegroups.com
Nada, mismo error con el otro dominio que me has dado.

Por si ayuda, lo que tengo instalado es xampp con php en windows 7.

Guillermo Barbero

unread,
Apr 11, 2013, 3:09:58 PM4/11/13
to sbpo...@googlegroups.com
Mira a ver si es un tema de curl

Benjamin Rodriguez

unread,
Apr 11, 2013, 4:21:46 PM4/11/13
to sbpo...@googlegroups.com
Acabo de probar este escrip en el servidor con estos resultados:
<?php
// Obtener array de la versión de curl
$version = curl_version();

// Estos son los campos que se pueden usar para 
// comprobar ciertas caracerísticas para esta versión de curl
$bitfields = Array(
            'CURL_VERSION_IPV6', 
            'CURL_VERSION_KERBEROS4', 
            'CURL_VERSION_SSL', 
            'CURL_VERSION_LIBZ'
   );


foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' coincide' : ' no coincide');
    echo PHP_EOL;
}
?>

CURL_VERSION_IPV6 coincide CURL_VERSION_KERBEROS4 no coincide CURL_VERSION_SSL coincide CURL_VERSION_LIBZ coincide

Por lo que parece que tengo CURL.

Benjamin Rodriguez

unread,
Apr 11, 2013, 4:31:54 PM4/11/13
to sbpo...@googlegroups.com
Array get_loaded_extensions()

Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => openssl [5] => pcre [6] => sqlite3 [7] => zlib [8] => bcmath [9] => bz2 [10] => calendar [11] => ctype [12] => curl [13] => dom [14] => filter [15] => ftp [16] => gd [17] => gettext [18] => hash [19] => iconv [20] => SPL [21] => intl [22] => json [23] => mbstring [24] => mcrypt [25] => mysql [26] => mysqli [27] => pgsql [28] => posix [29] => Reflection [30] => session [31] => standard [32] => SimpleXML [33] => soap [34] => sockets [35] => imap [36] => tidy [37] => tokenizer [38] => xml [39] => xmlreader [40] => xmlwriter [41] => xsl [42] => zip [43] => cgi-fcgi [44] => PDO [45] => pdo_sqlite [46] => SQLite [47] => pdo_mysql [48] => pdo_pgsql [49] => ionCube Loader [50] => Zend Guard Loader )


El jueves, 11 de abril de 2013 19:26:40 UTC+2, Guillermo Barbero escribió:

Jaime Sánchez Force

unread,
Apr 12, 2013, 3:33:24 AM4/12/13
to sbpo...@googlegroups.com
Al final he instalado apache en un ordenador con ubuntu, apache2, php y curl y con la url con ssl funciona.

Está claro que depende mucho de las configuraciones que se tenga, yo con xampp instalado, me falllaba mas que una escopeta de feria por el curl con los certificados, pero instalandolo en condiciones esto ya va como debe.

Eso si, sigo teniendo el problema de que con echobot no da los mensajes de bienvenida. Debería mandarlos no? sobretodo porque está configurado onNewContactSubscription, y en ningún caso he conseguido hacerlo funcionar...

Antonio Garrido

unread,
Apr 12, 2013, 4:25:19 AM4/12/13
to sbpo...@googlegroups.com
Hola, estoy probando la aplicación de echobot y me pasa lo mismo. Va todo bien excepto que no recibo los mensajes de bienvenida y de las votaciones. Cuando voto, me sale el mensaje: '¡App puntuada!', que no coincide con el que tengo puesto en el código fuente.
Un saludo y enhorabuena por esta fantástica iniciativa.


El jueves, 11 de abril de 2013 12:57:28 UTC+2, Benjamin Rodriguez escribió:

Guillermo Barbero

unread,
Apr 12, 2013, 5:10:05 AM4/12/13
to sbpo...@googlegroups.com
Yo en local, para hacer las pruebas, tengo XAMPP (con Mac) y me funciona...

Lo de que no tira el onNewContactSubscription es de lo más raro, porque si te funciona onNewMessage, te deberían funcionar el resto de funciones... ¿qué te dice el access.log?

Guillermo Barbero

unread,
Apr 12, 2013, 5:12:37 AM4/12/13
to sbpo...@googlegroups.com
¿Puede ser que el servidor tenga "cacheado" el php a ejecutar? Depende la tecnología que utilices, puede pasar eso. Por ejemplo con hiphop...

Prueba a cambiar la ruta del php (tanto en el perfil de la app, como en el propio servidor web), para forzar un reload si resulta que éste es el caso

--
Has recibido este mensaje porque estás suscrito al grupo "sbportal" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a sbportal+u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Benjamin Rodriguez

unread,
Apr 12, 2013, 5:24:14 AM4/12/13
to sbpo...@googlegroups.com
Bueno, estoy haciendo pruebas y estoy detectando cosas y acotando donde puede venir el error.

He añadido en el php lo siguiente:

protected function onNewMessage(SBMessage $msg_)
{
if(($messageText = $msg_->getSBMessageTextOrFalse()))
{
$this->replyOrFalse("echo: ".$messageText);
}
// destination user's sbcode 
$sbcode = "DI";
// send message 
if (!$this-> sendTextMessageOrFalse($messageText, $sbcode)) 
{$this->replyOrFalse("sbcode: ".$sbcode); error_log ("Codigo no encontrado: ".$sbcode);}
$archivo = 'log.txt';
$fp = fopen($archivo, "w");
$write = fputs($fp, "hola");
fclose($fp); 
}

Supuestamente debería crear un fichero en el servidor con la cadena "hola", pero no lo hace.

En cambio si pongo el código:

$archivo = 'log.txt';
$fp = fopen($archivo, "w");
$write = fputs($fp, "hola");
fclose($fp); 

Si lo pongo fuera de la clase, al enviar algo en spotbros, si me genera el fichero.

Por lo que si esta ejecutando el fichero bien, pero por alguna razón, no entra en la clase y no lo ejecuta !
Es decir, que no ejecuta "onNewMessage" ya que no se crea el fichero si pongo el código ahí.

Sabiendo esto, por donde puede estar fallando el asunto ?
Alguna idea ?

Jaime Sánchez Force

unread,
Apr 12, 2013, 5:50:39 AM4/12/13
to sbpo...@googlegroups.com
Nada, ni cambiando los nombres ni nada.

En el acces la traza que me encuentro a desuscribirme es esta

172.18.1.1 - - [12/Apr/2013:11:48:46 +0200] "POST /sbiblioeteca/examples/echobotb.php?params=%7B%22userSBCode%22%3A%22WHO5NXL%22%2C%22userProfilePicMD5%22%3A%22363e0402f513071774d505567b7a198d%22%2C%22userProfilePicMD5XL%22%3A%22759ed20fb5bf8e6bba3ff69b27e8240e%22%2C%22userName%22%3A%22Jaime%22%2C%22userLastName%22%3A%22S%C3%A1nchez%22%2C%22userGender%22%3A%22M%22%2C%22userAbout%22%3A%22Freak%2C%20geek%20y%20gamer%20todo%20en%20uno.%20Doy%20clases%20particulares%20de%20programaci%C3%B3n%20en%20JAVA%22%2C%22userRating%22%3A%227.67%22%2C%22userEmail%22%3A%22%22%2C%22userPhoneKey%22%3A%22%22%2C%22userLanguage%22%3A%22EN%22%2C%22userLatitude%22%3A%22%22%2C%22userLongitude%22%3A%22%22%2C%22eventType%22%3A%22NEW_CONTACT_UNSUBSCRIPTION%22%7D HTTP/1.1" 200 254 "-" "-"

Y al suscribirme esta

172.18.1.1 - - [12/Apr/2013:11:49:41 +0200] "POST /sbiblioeteca/examples/echobotb.php?params=%7B%22userSBCode%22%3A%22WHO5NXL%22%2C%22userProfilePicMD5%22%3A%22363e0402f513071774d505567b7a198d%22%2C%22userProfilePicMD5XL%22%3A%22759ed20fb5bf8e6bba3ff69b27e8240e%22%2C%22userName%22%3A%22Jaime%22%2C%22userLastName%22%3A%22S%C3%A1nchez%22%2C%22userGender%22%3A%22M%22%2C%22userAbout%22%3A%22Freak%2C%20geek%20y%20gamer%20todo%20en%20uno.%20Doy%20clases%20particulares%20de%20programaci%C3%B3n%20en%20JAVA%22%2C%22userRating%22%3A%227.67%22%2C%22userEmail%22%3A%22%22%2C%22userPhoneKey%22%3A%22%22%2C%22userLanguage%22%3A%22EN%22%2C%22userLatitude%22%3A%22%22%2C%22userLongitude%22%3A%22%22%2C%22eventType%22%3A%22NEW_CONTACT_SUBSCRIPTION%22%7D HTTP/1.1" 200 254 "-" "-"

La petición se está haciendo bien, por lo cual, tiene que haber algún problema entre medias por el que no se llama a las correspondientes funciones.

Guillermo Barbero

unread,
Apr 12, 2013, 9:59:47 AM4/12/13
to sbpo...@googlegroups.com
Gente,

  He encontrado el problema al envío de mensajes de bienvenida y de votación. En la SDK que habíamos publicado faltaba un campo al responder a eventos que no fueran NEW_MESSAGE...

  Haced pull y os debería funcionar ya.

Perdón por las molestias

Jaime Sánchez Force

unread,
Apr 12, 2013, 10:25:08 AM4/12/13
to sbpo...@googlegroups.com
Ya me imaginaba que sería algo así, en un rato lo pruebo para ver que tal va. Muchas gracias por esa rapidez de respuesta, eso si que es un buen equipo de apoyo ;)

Benjamin Rodriguez

unread,
Apr 12, 2013, 11:34:27 AM4/12/13
to sbpo...@googlegroups.com
Mas pruebas.

He creado un constructor de la clase y parece que si la ejecuta al introducir algo en spotbros.

Lo que he añadido es:

function EchoBot()
{
$archivo = 'log.txt';
$fp = fopen($archivo, "w");
$write = fputs($fp, "constructor");
fclose($fp); 
}

Y al meter algo en Spotbross, crea el fichero bien.
Por lo que el problema debe de estar en  protected function onNewMessage(SBMessage $msg_)
Ya que parece que no entra y no se ejecuta, cuando se escribe algo.

Alguna idea ?

Benjamin Rodriguez

unread,
Apr 12, 2013, 11:41:11 AM4/12/13
to sbpo...@googlegroups.com
Otra cosa detectada.
Cambiando el código de la función de onError así:

protected function onError($errorType_)
{
$archivo = 'log.txt';
$fp = fopen($archivo, "w");
$write = fputs($fp, $errorType_);
fclose($fp);
error_log($errorType_);
}

Al escribir algo me genera siempre un error 100000
Pero lo curioso es que en los logs no aparece nada, pero en cambio forzando a escribir un fichero de log, da ese error 100000

A ver si nos vamos acercando al problema !!
Ese error 100000, lo tenéis tipificado ?

Guillermo Barbero

unread,
Apr 12, 2013, 11:46:13 AM4/12/13
to sbpo...@googlegroups.com
el error 100000 está definido en SBErrors como WRONG_PARAMS_FORMAT_ERROR.

¿En el constructor estás llamando a parent::__construct($appSBCode_, $appKey_)?

--
Has recibido este mensaje porque estás suscrito al grupo "sbportal" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a sbportal+u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Benjamin Rodriguez

unread,
Apr 12, 2013, 11:52:47 AM4/12/13
to sbpo...@googlegroups.com
No lo estaba poniendo.
De todas formas, ahora quito el constructor y la función onError me arroja el mismo error 100000.

Jesus Hernandez

unread,
Apr 12, 2013, 11:56:55 AM4/12/13
to sbpo...@googlegroups.com
Hola,

Te importaría poner la siguiente traza: error_log($_GET["params"]) justo antes de $echobot->serveRequest ? Haz una petición a tu .php y dinos qué obtienes

Benjamin Rodriguez

unread,
Apr 12, 2013, 12:01:06 PM4/12/13
to sbpo...@googlegroups.com
Este es el resultado.

{\"userSBCode\":\"1GO3F4E\",\"userProfilePicMD5\":\"10369a3bc0b7f7169fe6502779595e7d\",\"userProfilePicMD5XL\":\"11f9b79fe0dabf06a43f13b361007b3c\",\"userName\":\"ben\",\"userLastName\":\"🚲⛵✈\",\"userGender\":\"M\",\"userAbout\":\"Esperando que me toque el euromillones\",\"userRating\":\"8.66\",\"userEmail\":\"\",\"userPhoneKey\":\"\",\"userLanguage\":\"EN\",\"userLatitude\":\"\",\"userLongitude\":\"\",\"eventType\":\"NEW_MESSAGE\",\"SBMessageId\":\"689ee03d6a75bde0299cf7212bce563f\"}

Jaime Sánchez Force

unread,
Apr 12, 2013, 2:35:48 PM4/12/13
to sbpo...@googlegroups.com
Confirmado, con la nueva versión del sdk ya funcionan los mensajes de bienvenida. Hora de ponerse manos a la obra de verdad jeje

Guillermo Barbero

unread,
Apr 13, 2013, 7:23:11 AM4/13/13
to sbpo...@googlegroups.com
Prueba a poner este código en onError():

foreach(debug_backtrace() as $backtrace)

{ error_log( $backtrace["function"]." - ".$backtrace["file"]."@".$backtrace["line"] ); }

Así podrás atinar más por dónde ha dado el error.

Prueba también a cambiarte el apellido utilizando sólo caracteres ascii. Si es esto segundo, será porque tienes un problema al procesar UTF8

Benjamin Rodriguez

unread,
Apr 13, 2013, 4:16:33 PM4/13/13
to sbpo...@googlegroups.com
resultado

(he cambiado la ruta con xxx)

onError - /home/xxx/public_html/xxx/spotbros/SBClientSDK/SBApp.php@178serveRequest - /home/xxx/public_html/xxx/spotbros/examples/echobot.php@73

también he cambiado el nombre con caracteres ascii.

sin resultados !

Guillermo Barbero

unread,
Apr 14, 2013, 4:45:54 AM4/14/13
to sbpo...@googlegroups.com
Pues prueba a meter log por doquier.

Dentro de la función serverRequest, antes de json_decodear los parámetros pon "Voy a json_decodear esto: ".$params_;

Luego escribe $requestData=json_decode($params_,true));

Luego imprime por el log "He obtenido ".print_r($requestData,true);

Prueba también con isValidParams(), por si acaso, pero me parece que no tienes la librería de json instalada...

Benjamin Rodriguez

unread,
Apr 14, 2013, 12:28:38 PM4/14/13
to sbpo...@googlegroups.com
Si tengo json, de echo lo uso en otras aplicaciones php.

He metido mas contenido al log.
El resultado es este:

Parametros antes de serverRequest: {\"userSBCode\":\"1GO3F4E\",\"userProfilePicMD5\":\"10369a3bc0b7f7169fe6502779595e7d\",\"userProfilePicMD5XL\":\"11f9b79fe0dabf06a43f13b361007b3c\",\"userName\":\"ben\",\"userLastName\":\"ben\",\"userGender\":\"M\",\"userAbout\":\"Esperando que me toque el euromillones\",\"userRating\":\"8.66\",\"userEmail\":\"\",\"userPhoneKey\":\"\",\"userLanguage\":\"EN\",\"userLatitude\":\"\",\"userLongitude\":\"\",\"eventType\":\"NEW_MESSAGE\",\"SBMessageId\":\"a1c481dcc243d147ca17d490d40a376c\"}

Parametros despues de serverRequest: {\"userSBCode\":\"1GO3F4E\",\"userProfilePicMD5\":\"10369a3bc0b7f7169fe6502779595e7d\",\"userProfilePicMD5XL\":\"11f9b79fe0dabf06a43f13b361007b3c\",\"userName\":\"ben\",\"userLastName\":\"ben\",\"userGender\":\"M\",\"userAbout\":\"Esperando que me toque el euromillones\",\"userRating\":\"8.66\",\"userEmail\":\"\",\"userPhoneKey\":\"\",\"userLanguage\":\"EN\",\"userLatitude\":\"\",\"userLongitude\":\"\",\"eventType\":\"NEW_MESSAGE\",\"SBMessageId\":\"a1c481dcc243d147ca17d490d40a376c\"}


El código actual es este:
(con xxxxxxx en el BotKey .. en real tengo el código de la app)

<?php
require_once('../SBClientSDK/SBApp.php');
$archivo = 'log.txt';
$fp = fopen($archivo, "w");
$datoslog="";
class EchoBot extends SBApp
{
protected function onError($errorType_)
{
//error_log($errorType_);
foreach(debug_backtrace() as $backtrace)
error_log( $backtrace["function"]." - ".$backtrace["file"]."@".$backtrace["line"] ); 
$datoslog .= "\nErrores onError: ".$backtrace["function"]." - ".$backtrace["file"]."@".$backtrace["line"];
}
}
protected function onNewVote(SBUser $user_,$newVote_,$oldRating_,$newRating_)
{
$this->replyOrFalse("Gracias por votar con ".$newVote_." estrellas");
}
protected function onNewContactSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Hola ".$userName."! Bienvenido a la APP METAR!");
}
}
protected function onNewContactUnSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Hasta Otra ".$userName."!");
}
}
protected function onNewMessage(SBMessage $msg_)
{
$datoslog .= "\nDentro onNewMessage (mensaje y sbcode: ".$messageText." - ".$sbcode;
if(($messageText = $msg_->getSBMessageTextOrFalse()))
{
$this->replyOrFalse("echo: ".$messageText);
}
// destination user's sbcode 
$sbcode = "DI";
// send message 
if (!$this-> sendTextMessageOrFalse($messageText, $sbcode)) 
{
$this->replyOrFalse("sbcode: ".$sbcode); 
error_log ("Codigo no encontrado: ".$sbcode);
}
}
}
$echoBotSBCode="UGD1USO";
$echoBotKey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$echoBot=new EchoBot($echoBotSBCode,$echoBotKey);
$datoslog .= "\nParametros: ".$_GET["params"];
$echoBot->serveRequest($_GET["params"]);
$datoslog .= "\nParametros despues de serverRequest: ".$_GET["params"];
fwrite($fp, $datoslog);
fclose($fp);
?>

Ya no se me ocurre donde mirar o que probar .. se me acaban los cartuchos !

Guillermo Barbero

unread,
Apr 14, 2013, 6:23:14 PM4/14/13
to sbpo...@googlegroups.com
Me refería a modificar la clase SBApp, metiendo log dentro de la propia función serveRequest(), imprimiendo el json que recibes por parámetro, json_decodearlo y justo después imprimir el array resultante de json_decodear, así te aseguras que la función de json_decode funciona bien

Benjamin Rodriguez

unread,
Apr 16, 2013, 2:46:13 PM4/16/13
to sbpo...@googlegroups.com
  public function serveRequest($params_)
  {
$archivo = 'log2.txt';
$fp = fopen($archivo, "w");
$datoslog="";
$datoslog .= "\n\nParametros en SBAPP: ".$params_;
$datoslog .= "\n\nDECODE: ".print_r(json_decode($params_));
    if((($requestData=json_decode($params_,true))!=null) && $this->isValidParams($requestData))
    {
     $datoslog .= "\n\nSBAPP dentro de decode: ";
switch($requestData["eventType"])
.....

Resultado:

Parametros en SBAPP: {\"userSBCode\":\"1GO3F4E\",\"userProfilePicMD5\":\"10369a3bc0b7f7169fe6502779595e7d\",\"userProfilePicMD5XL\":\"11f9b79fe0dabf06a43f13b361007b3c\",\"userName\":\"ben\",\"userLastName\":\"ben\",\"userGender\":\"M\",\"userAbout\":\"Esperando que me toque el euromillones\",\"userRating\":\"8.66\",\"userEmail\":\"\",\"userPhoneKey\":\"\",\"userLanguage\":\"EN\",\"userLatitude\":\"\",\"userLongitude\":\"\",\"eventType\":\"NEW_MESSAGE\",\"SBMessageId\":\"8e0a775bc7e80f810b2ac0010c553eee\"}

DECODE: 1


Benjamin Rodriguez

unread,
Apr 17, 2013, 5:13:54 AM4/17/13
to sbpo...@googlegroups.com
La madre del cordero y de la vaca lechera !!
Las vueltas que he dado .. pero al fin funciona !

Que problema había ?

No se porque motivo,  $params_ trae de serie unas barras de escape "\" en el array que no se donde se generan y de echo al imprimir el array las imprime (ver el mensaje anterior)

Que he tenido que hacer ?
He eliminado las "\" de $params_ y le he vuelto a asignar la cadena sin las "\" y ahora funciona !

Cambio en SBapp.php:

  public function serveRequest($params_)
  {
$params= str_replace('\\','',$params_);
$params_=$params;
......

Y con este cambio ya funciona todo !

Guillermo Barbero

unread,
Apr 17, 2013, 5:20:42 AM4/17/13
to sbpo...@googlegroups.com
El segundo parámetro de json_decode indica si el array es asociativo o no. print_r a su vez tiene como segundo parámetro un booleano que indica si quieres que el array se devuelva en forma de string como resultado de la función (true) o quieres que se imprima por la salida del comando (false). El valor por defecto de ambas funciones es false.
Prueba a poner lo siguiente:

$datoslog .= "\n\nDECODE: ".print_r(json_decode($params_, true), true);

Por otro lado, la \ del json no es más que el caracter de escape de el caracter de dobles comillas (u otros caracteres, como el propio caracter de escape). un str_replace de el caracter escape ( \ ), que representado en forma de string es "\\", debería ser inocuo para el proceso de json_decode. Así que ha debido ser otra cosa...

--
Has recibido este mensaje porque estás suscrito al grupo "sbportal" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a sbportal+u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Benjamin

unread,
Apr 17, 2013, 5:26:34 AM4/17/13
to sbpo...@googlegroups.com
Que va.
Esta comprobado, es poner el cambio ese que comento y funcionar, lo quito y no funciona.

$params= str_replace('\\','',$params_);
$params_=$params;

Esa es la clave para que me funcione en mi caso.

No puede ser otra cosa, puesto que quito esas dos lineas y no funciona, las pongo y funciona.

la linea esa que comentas  $datoslog .= "\n\nDECODE: ".print_r(json_decode($params_, true), true);  no me imprimía nada, eran restos de codigo que tenía puestos.

Simplemente es añadir esas dos lineas nada mas comenzar la función public function serveRequest($params_)
y funciona perfectamente !

El porque ? .. NPI .. pero ahora funciona.

Ahora toca ponerse con las apps a fondo, y no investigar porque fallaba .. jejejeje

A los que no os funcionase como mi caso, probar a poner eso y ver si os funciona y comentáis !!!

Un Saludo.

--------------------------------------------------------------------------------

Antes de imprimir este e-mail piense bien si es necesario hacerlo

NOTA: Los acentos han sido omitidos en su mayor parte para evitar errores en el envio.

Este mensaje y los documentos que, en su caso, lleve anexos, pueden contener informacion confidencial. Por ello, se informa a quien lo reciba por error, que la informacion contenida en el mismo es reservada y su no autorizado esta prohibido legalmente por la Ley Organica 15/1999 de Proteccion de Datos de Caracter Personal, por lo que en tal caso, debe abstenerse de realizar copia, remitirlo o entregarlo a otra persona y proceda a borrarlo de inmediato.
Si el receptor de la comunicacion no fuera el destinatario le informamos que cualquier divulgacion, copia, reproduccion ,distribucion o utilizacion no autorizada de la informacion contenida en la misma esta prohibida por la legislacion vigente y podra desencadenar acciones legales.

Benjamin Rodriguez

unread,
Apr 17, 2013, 10:41:00 AM4/17/13
to sbpo...@googlegroups.com
Bueno.
Una vez que me ha funcionado el tema, ya tengo mi primera app.
V4UGZQ2
Ahora es cuestión de ir desarrollando ideas !!
Gracias por la ayuda y espero que le sirva a mas gente.

Abraham Delhort

unread,
Sep 2, 2013, 3:40:16 PM9/2/13
to sbpo...@googlegroups.com, jesus.h...@spotbros.com
estoy haciendo una app en php y no consigo que al enviarme un mensaje a mi movil me envie el sbcode del que me envia el mensaje, a parte que me gustaria que cuando pusiera una palabra ejemplo "info" le enviase un sbmail de la info, espero tu ayuda.
MI codigo es:
<?php
require_once('SBApp.php');
$archivo = 'log.txt';

$fp = fopen($archivo, "w");
$datoslog="";
class EchoBot extends SBApp
{
protected function onError($errorType_)
{
//error_log($errorType_);
foreach(debug_backtrace() as $backtrace)
{
error_log( $backtrace["function"]." - ".$backtrace["file"]."@".$backtrace["line"] );
$datoslog .= "\nErrores onError: ".$backtrace["function"]." - ".$backtrace["file"]."@".$backtrace["line"];
}
}
protected function onNewVote(SBUser $user_,$newVote_,$oldRating_,$newRating_)
{
$this->replyOrFalse("Gracias por votar con ".$newVote_." estrellas");
}
protected function onNewContactSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Bienvenido ".$userName." a nuestra APP en Spotbros. Mas info en www.servicetime.es

Nuestros Servicios

    ELECTRICIDAD
    FONTANERIA
    TECNOLOGIA
    OBJETOS DEL HOGAR
    INFORMATICA
    PINTURA
    ELECTRODOMESTICOS
    INTERNET Y REDES
    MOVILES
    TRANSPORTE
    MAS SERVICIOS.......

LLAMENOS AL 668821047 O ENVIENOS UN EMAIL A in...@servicetime.es

PARA QUE NOSOTROS LE LLAMEMOS, EXCRIBANOS SU PREGUNTA SEGUIDO DE SU TELEFONO O EMAIL. GRACIAS

");
}
}
    protected function onNewContactUnSubscription(SBUser $user_)
{
if(($userName = $user_->getSBUserNameOrFalse()))
{
$this->replyOrFalse("Espero volverte a ver ".$userName."!");

}
}   
protected function onNewMessage(SBMessage $msg_)
{
$datoslog .= "\nDentro onNewMessage (mensaje y sbcode: ".$messageText." - ".$sbcode;   
if(($messageText = $msg_->getSBMessageTextOrFalse()))
{
$this->replyOrFalse("Su mensaje ha sido enviado, cualquier duda, llamenos al 668821047 o envienos un email a in...@servicetime.es

Su mensaje es: ".$messageText);
}
// destination user's sbcode
$sbcode = "L39SRM4";

// send message
if (!$this-> sendTextMessageOrFalse($messageText, $sbcode))
{
$this->replyOrFalse("Nuestro SBCODE de contacto es: ".$sbcode);
error_log ("Codigo no encontrado: ".$sbcode);

}
}
}
$SBCode="RY658WA";
$Key="41eca8018df49c37c15f26d60da09334121747bd21feaafb64d12619faf5ec00";
$echoBot=new EchoBot($SBCode,$Key);

$datoslog .= "\nParametros: ".$_GET["params"];
$echoBot->serveRequest($_GET["params"]);
$datoslog .= "\nParametros despues de serverRequest: ".$_GET["params"];
fwrite($fp, $datoslog);
fclose($fp);   
?>

<?php
require_once('SBApp.php');
$SBCode = "RY658WA";
$Key = "41eca8018df49c37c15f26d60da09334121747bd21feaafb64d12619faf5ec00";

class AttachmentTesterApp extends SBApp
{
protected function onError($errorType_){}
protected function onNewVote(SBUser $sbUser_, $newVote_, $oldRating_, $newRating_){}
protected function onNewContactSubscription(SBUser $sbUser_){}
protected function onNewContactUnSubscription(SBUser $sbUser_){}
protected function onNewMessage(SBMessage $message_)
{
//TITULO
$this->_SBAttachments->addTitleOrFalse("SERVICETIME.ES - SERVICIOS AL INSTANTE");


//INFORMACION
$this->_SBAttachments->addParagraphOrFalse("
Nuestros Servicios

    ELECTRICIDAD
    FONTANERIA
    TECNOLOGIA
    OBJETOS DEL HOGAR
    INFORMATICA
    PINTURA
    ELECTRODOMESTICOS
    INTERNET Y REDES
    MOVILES
    TRANSPORTE
    MAS SERVICIOS.......

");
//REFERENCIA
$this->_SBAttachments->addQuoteOrFalse("LLAMENOS AL 668821047 O ENVIENOS UN EMAIL A in...@servicetime.es");

//LINK
$this->_SBAttachments->addLinkOrFalse("http://www.servicetime.es");

        // send message to recipient A
        if (!$this->replyOrFalse("Servicios"))
        {

error_log ("No se pudo enviar mensaje al usuario");
}
}
}
$attachmentTesterApp = new AttachmentTesterApp($SBCode,$Key);
$attachmentTesterApp->serveRequest($_GET["params"])
?>

Gracias

El dijous 11 d’abril de 2013 12:59:00 UTC+2, jesus.h...@spotbros.com va escriure:
Acabamos de solucionar ese fallo. De todas formas solo afectaba a la sección de estadísticas, así que no te preocupes.

Guillermo Barbero

unread,
Sep 3, 2013, 4:27:21 AM9/3/13
to sbpo...@googlegroups.com
Al parecer leyendo el código lo que hace esto es enviar el mismo mensaje que el usuario de la SBApp ha escrito a L39SRM4. Si falla el envío, entonces se le responde al usuario con el mensaje de Nuestro SBCODE de contacto es: L39SRM4

Para leer el sbcode de quien envía un mensaje hay que llamar a $msg_->getSBMessageFromUserOrFalse()->getSBUserSBCodeOrFalse() 

--
Has recibido este mensaje porque estás suscrito al grupo "sbportal" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a sbportal+u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages