- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пожалуйста, помогите разобраться, не могу получить список ключевых слов от youtube.
Вот пример запроса, который эти ключевые слова отдает (tags)
https://www.googleapis.com/youtube/v3/videos?key=AIzaSyBOk9H_7v9BXEwB8RIign71H7ze2vFO1ao&fields=items(snippet(title,description,tags))&part=snippet&id=XvYOoNK0emw
Ниже функция при помощи которой я получаю title и description и сам ролик (на сайте title вывожу так: <?php echo Main::title() ?>...)
$part = "snippet,statistics";
$this->url = "https://www.googleapis.com/youtube/v3/videos?key={$this->config["key"]}&part=$part&videoEmbeddable=true&videoSyndicated=true&id=$id";
$data = $this->http(TRUE);
$data->items[0]->snippet->description = nl2br($data->items[0]->snippet->description);
if ($this->badwords($data->items[0]->snippet->title)==true) {
header("Location: {$this->config["url"]}");
exit;
}
return $data->items[0];
}
Помогите, пожалуйста, в функцию выше, верно прописать запрос на получение tags (keywords) и верно вывести на сайте с расставлением запятых (видимо так <?php echo Main::tags() ?>).
Спасибо!
"]Документация snippet.tags[]
---------- Добавлено 18.02.2017 в 15:56 ----------
Добавил строку
в результате получил Array вместо ключей.
---------- Добавлено 18.02.2017 в 16:21 ----------
Доработал класс
protected static $title = "";
protected static $description = "";
protected static $tags = "";
.......
/**
* Generate meta title
* @param none
* @return title
* @since v1.0
*/
public static function title(){
if(empty(self::$title)){
return self::$config["title"];
}else{
return self::$title;
}
}
/**
* Generate meta description
* @param none
* @return description
* @since v1.0
*/
public static function description(){
if(empty(self::$description)){
return self::$config["description"];
}else{
return self::$description;
}
}
/**
* Generate meta tags
* @param none
* @return tags
* @since v1.0
*/
public static function tags(){
if(empty(self::$tags)){
return self::$config["tags"];
}else{
return self::$tags;
}
}
по прежнему Array вместо ключей. :(
Что не так, не пойму.
по прежнему Array вместо ключей. :(
Что не так, не пойму.
не вникал, но может это массив ключей? что показывает var_dump()
Не знаю, верно сделал или нет, у меня var_dump() показывает это
https://i.gyazo.com/64d096f72c9de2499b6562ff5d9b386d.png
:)
Во-первых, не увидел в запрашиваемом урле части с fields=items(snippet(title,description,tags))
Но это ладно - возможно по дефолту теги и так отдаются.
Во вторых, после $data = $this->http(TRUE); сделайте
var_dump($data);
и посмотрите, что выводится, от этого и пляшите
var_dump($data); вывел ключи
Во-первых, не увидел в запрашиваемом урле части с fields=items(snippet(title,description,tags))
title,description я понял, что это отдается с помощью
if ($this->badwords($data->items[0]->snippet->title)==true) {
header("Location: {$this->config["url"]}");
exit;
}
из-за этого и добавил строку
$data->items[0]->snippet->tags = ($data->items[0]->snippet->tags);
смысл этой строки ноль) думаю у вас все получится, раз теги уже выводит.
Раз в ответе теги есть - то выводите их с помощью функции join() например.
Если делать что-то типа echo $arr; если $arr - массив - то вы слово Array на выходе и получите.
Т.е. Array и должно быть, осталось только верно вывести массив?
$arr=array('tags');
echo join(' ', $arr);
?>
Так выводит tags
Еще дописал функцию
* Get Meta data of URL
* @param url
* @return formatted array
*/
public static function get_meta_data($url){
$content=Main::curl($url);
if($content){
$array = array('title'=>'','description'=>'','tags'=>'');
$pattern = "|<[\s]*title[\s]*>([^<]+)<[\s]*/[\s]*title[\s]*>|Ui";
if(preg_match($pattern, $content, $match)){
$array['title']=$match[1];
}
$data=get_meta_tags($url);
if(isset($data['description'])){
$array['description']=$data['description'];
}
$data=get_meta_tags($url);
if(isset($data['tags'])){
$array['tags']=$data['tags'];
}
unset($data);
unset($content);
unset($match);
return $array;
}
return FALSE;
}
изменений нет.
вместо
$array['tags']=$data['tags'];
попробуйте
$array['tags']=join(",",$data['tags']);
Array выводит :(
Проверил, если на youtube нет ключей у видео, у меня в keywords отображаются ключи которые я прописал в config для tags.
Если у видео есть ключи, у меня Array
if(empty(self::$tags)){
return self::$config["tags"];
}else{
return self::$tags;
}
}
получается, что работает на половину?
Осталось разобраться, как вывести эти ключи.
Видимо проблема в том, что они отдаются не просто текстом а так:
"best",
............
"electro"
]
https://www.googleapis.com/youtube/v3/videos?key=AIzaSyBOk9H_7v9BXEwB8RIign71H7ze2vFO1ao&fields=items(snippet(title,description,tags))&part=snippet&id=XvYOoNK0emw