0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 89 Просмотров
*

pavelrer

  • Давно я тут
  • 601
  • 10 / 2
Код
<?php	defined('_JEXEC') or die;
// -----------------------------------------------------------------------------------------------
$app_token = 'AgAAAA-Тута-ваш-токен-VE98EUWM';
// -----------------------------------------------------------------------------------------------
// Создать приложение и получить токен тут - https://oauth.yandex.ru/ (! Время жизни токена: Не менее, чем 180 дней !)
// Получаем токен вручную из url https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
// -----------------------------------------------------------------------------------------------
// -- Редакция Шевченко.П для JoomlaForum
// -----------------------------------------------------------------------------------------------
// $url_quota = 'https://api.webmaster.yandex.net/v4/user/.$rty[userId]./hosts/.$rty[hostId]./recrawl/quota';
// $result_url_quota = getResponseYANDEX($url_quota, $headers);
//  Cмысл прверять квоту просто нет лишний запрос.
// -----------------------------------------------------------------------------------------------
function yandex_add_url($set_add_url_yandex)
{
// -----------------------------------------------------------------------------------------------
$app_token = 'AgAAAA-Тута-ваш-токен-VE98EUWM';
// -----------------------------------------------------------------------------------------------
$rty = user_id_host_id($app_token);
// Можно выполнить один раз для нескольких идущих друг за другом запросов, или записать эти значения в базу.

// $set_add_url_yandex = 'https://ваш-домен/страница';
$set_xml = '<Data><url>'.$set_add_url_yandex.'</url></Data>';
$url_set_add_url_yandex = 'https://api.webmaster.yandex.net/v4/user/'.$rty[userId].'/hosts/'.$rty[hostId].'/recrawl/queue/';
$headers = array('Authorization: OAuth ' . $app_token, 'Content-Type: application/xml; charset=utf-8', 'Content-Length: ' . strlen($set_xml));
$result_set_add_url_yandex = getResponseYANDEX($url_set_add_url_yandex, $headers, $set_xml);
if ($result_userId[code] == 200)
{
// Все хорошо - отправили на переобход
}
else
{
$string_to_log = 'call() Error code(hostId) = '.$result_set_add_url_yandex[code].'. Response : '.$result_set_add_url_yandex[response];
add_log($string_to_log);
}
}
// -----------------------------------------------------------------------------------------------
function user_id_host_id($app_token)
{
$headers = array('Authorization: OAuth ' . $app_token);
$y_id = array();

//  Узнаем user_id
$url_userId = 'https://api.webmaster.yandex.net/v4/user/';
$result_userId = getResponseYANDEX($url_userId, $headers);
if ($result_userId[code] == 200)
{   
$userId_ar = json_decode($result_userId[response]);
$userId = $userId_ar->user_id;
$y_id[userId] = $userId;

//  Узнаем host_id
$url_hostId = '[url=https://api.webmaster.yandex.net/v4/user/]https://api.webmaster.yandex.net/v4/user/[/url]'.$userId.'/hosts/';
$result_hostId = getResponseYANDEX($url_hostId, $headers);
// Если в вебмастере несколько сайтов, не будет работать если не первый.
if ($result_hostId[code] == 200)
{
$hostId_ar = json_decode($result_hostId[response]);
$hostId_ar = $hostId_ar->hosts;
$hostId = $hostId_ar[0]->host_id;
$y_id[hostId] = $hostId;
}
else
{
$string_to_log = 'call() Error code(hostId) = '.$result_hostId[code].'. Response : '.$result_hostId[response];
// Пишем в лог
add_log($string_to_log);
}
}
else
{
$string_to_log = 'Error code(userId) = '.$result_userId[code].'. Response : '.$result_userId[response];
// Пишем в лог
add_log($string_to_log);
}
return $y_id;
}
// -----------------------------------------------------------------------------------------------
function add_log($string_to_log)
{
// -----------------------------------------------------------------------------------------------
$file_log_path = '/home/admin/web/ваш-домен/public_html/templates/rs_form/yandex_add_url.log';
// -----------------------------------------------------------------------------------------------
$fp = fopen($file_log_path, 'a+');
fwrite($fp, $string_to_log."\r\n");
fclose($fp);
}
// -----------------------------------------------------------------------------------------------
function getResponseYANDEX($url, $headers = array(), $fields = NULL)
{
$headers[] = 'Content-type: application/x-www-form-urlencoded';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($fields) {
if (is_array($fields)) {
$post_arr = array();
foreach ($fields as $key => $value) {
$post_arr[] = $key . "=" . $value;
}
$data = implode('&', $post_arr);
} else {
$data = $fields;
}
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return array(
'code' => $code,
'response' => $response
);
}
// -----------------------------------------------------------------------------------------------
?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где может быть функция сохранения в компоненте?

Автор Dram

Ответов: 15
Просмотров: 418
Последний ответ 26.10.2020, 22:20:50
от Dram
FLYandexTurbo - плагин для создания турбостраниц в Яндекс -как добавить модуль?

Автор gonzergonzer

Ответов: 10
Просмотров: 509
Последний ответ 29.05.2020, 20:50:15
от khan-alex
Платежный шлюз Яндекс

Автор Elena2020

Ответов: 4
Просмотров: 294
Последний ответ 15.05.2020, 10:36:10
от Elena2020
Цель для Яндекс.Метрики в JBZoo

Автор piligrimm

Ответов: 3
Просмотров: 274
Последний ответ 06.04.2020, 11:13:43
от piligrimm
Составная цель для Яндекс метрики

Автор Irishstyle

Ответов: 3
Просмотров: 237
Последний ответ 31.10.2019, 21:31:06
от fbr