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);
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...)
$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...