XML-RPC пинг (Google и другие) - PullRequest
8 голосов
/ 05 марта 2012

Я пытаюсь пинговать (тактика SEO, называемая «пинг», используется для нового контента, чтобы роботы индексировали его быстрее) Google на PHP.Единственное, что я знаю, это то, что мне нужно отправить свой запрос по следующему адресу: http://blogsearch.google.com/ping/RPC2

Возможно, я смогу использовать PHP XML-RPC функции .Я не знаю, как отформатировать мой запрос и какой метод использовать.

Ответы [ 3 ]

7 голосов
/ 06 марта 2012

Что касается вас, чтобы выполнить запрос XML-RPC ( Пример # 1 ).

Если вы следуете спецификации пингбека , это будет выглядеть так:

$sourceURI = 'http://example.com/';
$targetURI = 'http://example.com/';
$service = 'http://blogsearch.google.com/ping/RPC2';

$request = xmlrpc_encode_request("pingback.ping", array($sourceURI, $targetURI));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents($service, false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}

Что даст вам следующий вывод:

Array
(
    [flerror] => 
    [message] => Thanks for the ping.
)

Как правило, если вы не знаете, какой метод вызываете, вы также можете попробовать Самоанализ XML-RPC - но не все серверы XML-RPC предлагают это.


Вы спросили в комментарии:

Согласно спецификации, $targetURI должно быть: "Цель ссылки на исходном сайте. Это ДОЛЖНА быть страница с поддержкой pingback" . Как сделать страницу с поддержкой pingback или, что более важно, что это на самом деле?

Сайт с поддержкой пингбэка - это веб-сайт, который также объявляет службу привязки XML-RPC. Это делается с помощью элемента HTMl <link> в разделе <head>. Пример:

<link rel="pingback" href="http://hakre.wordpress.com/xmlrpc.php" />

href указывает на конечную точку XML-RPC, для которой доступен метод pingback.ping.

Или это делается отправкой специального HTTP-заголовка ответа:

X-Pingback: http://charlie.example.com/pingback/xmlrpc

См. ресурс с поддержкой pingback .

Так что, если вы пингуете других, другие тоже могут пинговать вас.

1 голос
/ 09 ноября 2012

Ммм, я думаю, мы должны использовать weblogUpdates.ping или weblogUpdates.extendedPing вместо pingback.ping для проверки связи сайта с новым контентом.

pingback.ping для новой ссылки с одного сайта на другой,не для нового контента.

0 голосов
/ 26 мая 2013

Я думаю, что вы должны использовать weblogUpdates.extendedPing с поиском в блогах Google, блогами, Pingomatic и weblogUpdates.ping для другого сервера. Я создал инструмент ping, но некоторые серверы возвращают ошибку с http и https, я не могу выдать ошибку Online rpc xml ping

...