Добрый день. До 31 декабря оригинальные тексты по api отлично работали.
https://tech.yandex.ru/webmaster/doc/dg/reference/...
С 1 января не хочет. Токен обновил, ключ обновил. Авторизация успешно( если левый токен - то сразу ошибка)
Выдает http code 100 и ответ сервера false. Все перепробовал.
Некоторые вырезки кода
public $appId;
public $appSecret;
public $yandexToken;
public $siteId;
protected $host = 'webmaster.yandex.ru';
protected $url;
protected $timeOut = 30;
public function init()
{
$this->url = "/api/v2/hosts/" . $this->siteId . "/original-texts/";
parent::init();
}
private function getPage($curlOptions = array())
{
$ch = curl_init();
curl_setopt_array($ch, $curlOptions);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
return array('result' => $result, 'info' => $info);
}
# Функция непосредсвенной подготовки на выполнения запроса добавления уникального текста
private function performYandexWebmasterApiRequest(
$url,
$requestType = 'POST',
$curlOptions = array(),
$additionalHeaders = array()
) {
$headers = array(
"{$requestType} {$url} HTTP/1.1",
'Host: webmaster.yandex.ru',
'Authorization: OAuth ' . $this->yandexToken
);
$headers = array_merge($headers, $additionalHeaders);
$requestOptions = array(
CURLOPT_URL => $this->host . $this->url,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_CONNECTTIMEOUT => $this->timeOut,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => 1
);
if (count($curlOptions)) {
foreach ($curlOptions as $curlOption => $curlOptionValue) {
$requestOptions[$curlOption] = $curlOptionValue;
}
}
$response = $this->getPage($requestOptions);
return $response;
}
public function add($text)
{
$text = strip_tags(html_entity_decode($text));
$text = urlencode("<original-text><content>{$text}</content></original-text>");
$additionalHeaders = array('Content-Length: ' . mb_strlen($text));
$curlOptions = array(CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_POSTFIELDS => $text);
$response = $this->performYandexWebmasterApiRequest($this->url, 'POST', $curlOptions, $additionalHeaders);
if($response['info']['http_code'] == 201)
{
$xml = new SimpleXMLElement($response['result']);
return $xml->id;
}
else
return false;
}