Как получить случайные картинки flickr для бота в Facebook messenger?

Я не хочу, чтобы мой бот получал изображения, если пользователь просит об этом.
Но я действительно не уверен, как сделать это возможным.
Я создал специальную страницу на своем веб-сайте, где я получаю изображения по запросу.
Но мой бот не работает.
Я создал учетную запись Flickr, создал специальную страницу, связал код моего бота с кодом страницы Flickr.
Итак, вопрос в том, как заставить моего бота искать картинки во flickr, а затем предоставлять их пользователю?

Вот код для страницы бота:

 include 'flickr.php';
$row = "My access token";
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$row;$ch = curl_init($url);
if($message == "image'.$set.'")
{
$load_images = $hasil;
$image = file_get_contents($load_images);
$jsonData = '{
"recipient":{
"id":"'.$sender.'"},
"message":{
"attachment":{
"type":"image",
"payload":{
"url":"'.$image.'"}
}
}
}';
};

$json_enc = $jsonData;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_enc);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

if(!empty($input['entry'][0]['messaging'][0]['message'])){
$result = curl_exec($ch);
}

И вот мой код Flickr.
Я думаю, что ошибка где-то здесь, но я не вижу ее.

 require_once 'webhook.php';

class flickr
{
var $api;
function __construct($api) {
$this->api = $api;
}
function flickr_photos_search($search,$count_image,$size)
{
$params = array(
'api_key'   => $this->api,
'method'    => 'flickr.photos.search',
'text'      => $search,
'format'    => 'rest',
'per_page'  => $count_image,
'page'      => 1,);
$xml = $this->create_url($params);
if(@$rsp = simplexml_load_file($xml))
{
if (count($rsp)<>0)
{
foreach($rsp->photos->children() as $photo)
{
if ($photo->getName()=='photo')
{
$farm=$photo->attributes()->farm;
$server=$photo->attributes()->server;
$id=$photo->attributes()->id;
$secret=$photo->attributes()->secret;
if ($size=='Med')
{
$sz="";
}
else
{
$sz = "_".$size;
}
$gbr[]='<img src="https://farm'.$farm.'.staticflickr.com/'.$server.'/'.$id.'_'.$secret.$sz.'.jpg'.'" /> ';
}
}
}
else
{
die("No images found!");
}
}else
{
die("wrong parameter");
}
return $gbr;
}
function create_url($params)
{
$encoded_params = array();
foreach ($params as $k => $v){

$encoded_params[] = urlencode($k).'='.urlencode($v);
}
$url = "https://api.flickr.com/services/rest/?".implode('&', $encoded_params);
return $url;
}
}

if(isset($_REQUEST[$set]))
{

$search=$_REQUEST[$set];
$result= 30;
$size = 'm';

$flickr = new flickr('My flickr secret code');
$gbr    = $flickr->flickr_photos_search($search,$result,$size);
foreach($gbr as $hasil)
{
echo $hasil.' ';
}
}

0

Решение

Существует проблема:

$load_images = $hasil;
$image = file_get_contents($load_images);
"payload":{
"url":"'.$image.'"}

От документация — Полезное изображение — это просто URL этого изображения.

Вы можете использовать мой API (https://github.com/Fritak/messenger-platform) для этого, действительно прост в использовании:

// Send an image (file).
$bot->sendImage($userToSendMessage, 'http://placehold.it/150x150');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]