Obtener adjuntos enviados a una sbapp

18 views
Skip to first unread message

Jaime Sánchez Force

unread,
Oct 4, 2013, 4:22:36 AM10/4/13
to sbpo...@googlegroups.com
Estaba intentando obtener todos los adjuntos que lleva un mensaje, y me he estancado con las imagenes, videos y audios.

Todos los demás adjuntos me llegan bien, pero esos na de na.

Os pego el código, porque creo que no estoy haciendo nada mal. Es más estoy siguiendo el ejemplo de dirtywatermark que viene con el SDK.

                $attachments = $msg_->getSBMessageAttachmentsOrFalse();
$textoMensajeAEnviar = $msg_->getSBMessageTextOrFalse();
foreach($attachments as $attachment)
{

switch ($attachment["attachmentType"]) {
case SBAttachmentType::IMAGE :
$imageURL = $attachment["attachmentPayload"];
$this->_SBAttachments->addTitleOrFalse("Vaya, al fin llega una imagen");
$this->_SBAttachments->addImageOrFalse($imageURL);
break;
case SBAttachmentType::YOUTUBE_LINK :
$youtubeURL = $attachment["attachmentPayload"];
$this->_SBAttachments->addYoutubeLinkOrFalse($youtubeURL);
break;
case SBAttachmentType::VIDEO :
$videoURL = $attachment["attachmentPayload"];
                                        $this->_SBAttachments->addParagraphOrFalse("Vaya, al fin llega un video");
$this->_SBAttachments->addVideoOrFalse($videoURL);
break;
case SBAttachmentType::AUDIO :
$audioURL = $attachment["attachmentPayload"];
$this->_SBAttachments->addParagraphOrFalse("Vaya, al fin llega un audio");
$this->_SBAttachments->addAudioFalse($audioURL);
break;
case SBAttachmentType::MAP :
$coordenadas = $attachment["attachmentPayload"];
list($lat, $lon) = split(",", $coordenadas,2);
$this->_SBAttachments->addMapOrFalse($lat, $lon);
break;
case SBAttachmentType::EXTENDED_MSG :
$textoMensajeAEnviar = $attachment["attachmentPayload"];
break;
case SBAttachmentType::LINK :
$link = $attachment["attachmentPayload"];
$this->_SBAttachments->addLinkOrFalse($link);
break;
case SBAttachmentType::QUOTE :
$quote = $attachment["attachmentPayload"];
$this->_SBAttachments->addQuoteOrFalse($quote);
break;
case SBAttachmentType::PARAGRAPH :
$parrafo = $attachment["attachmentPayload"];
$this->_SBAttachments->addParagraphOrFalse($parrafo);
break;
case SBAttachmentType::TITLE :
$title = $attachment["attachmentPayload"];
$this->_SBAttachments->addTitleOrFalse($title);
break;
}
}

$this->replyOrFalse("Mensaje: ".$textoMensajeAEnviar);



Todo lo demás llega, cualquier tipo de texto llega perfectamente, pero sin embargo si pongo, imagen, vídeo o audio nunca entra en el bucle porque los atacchments vienen vacíos (Comprobado).

Y lo único que me escupe en el error log es esto (Y porque si no recuerdo mal, le puse yo que me sacara por ahí las url...)




En dirtyWatermark haceis lo siguiente:

$attachments = $message_->getSBMessageAttachmentsOrFalse();
$imageURL = '';
foreach($attachments as $attachment)
{
if($attachment["attachmentType"]==SBAttachmentType::IMAGE)
{
$imageURL = $attachment["attachmentPayload"];
break;
}
}
if($imageURL!=='' && ($imagePath = $this->_curlMngr->downloadFileOrFalse($imageURL)))
{
if($waterMarkedImagePath = $this->drawWaterMark($imagePath))
{
$this->_SBAttachments->addImageOrFalse($waterMarkedImagePath);
$this->replyOrFalse("This is your watermarked image");
}
else
{
$this->replyOrFalse("Your image could not be watermarked");
}
}
else
{
$this->replyOrFalse("Your image could not be retrieved. You must send an image");
}

También le he puesto primero el download con curl, pero claro, eso no vale de nada, si cuando le mando una imagen los atacchments no me llegan...


¿Alguna solución?

PD: El SBCode donde estoy probando es BR359H1


Guillermo Barbero

unread,
Oct 4, 2013, 8:39:28 AM10/4/13
to sbpo...@googlegroups.com
Buenas, el bug estaba en la SDK, he metido un fix para que siga funcionando. Tenéis que hacer pull de los cambios.

Gracias Jaime por detallar el problema!


--
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.



--
 
Guillermo Barbero - Backend Team

Spotbros Technologies

  

Reply all
Reply to author
Forward
0 new messages