XML-RPC ping(谷歌和其他公司)


XML-RPC pinging (google and others)

我正在尝试用PHP对谷歌进行ping(称为"ping"的SEO策略用于新内容,以使机器人更快地对其进行索引)。我唯一知道的是,我需要将我的请求发送到以下网址:http://blogsearch.google.com/ping/RPC2

也许我可以使用PHP XML-RPC函数。我不知道如何格式化我的请求以及使用哪种方法。

就您所关心的XML-RPC请求而言(示例#1)。

如果你遵循ping back的规范,它看起来像这样:

$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 Introspection,但并不是所有的XML-RPC服务器都提供这种功能。


你在评论中问道:

根据规范,$targetURI应该是:"源站点上链接的目标。这应该是一个启用了pingback的页面"。我该如何使启用回铃音的页面,或者更重要的是,它到底是什么?

启用pingback的站点是一个同时发布XML-RPC pinbback服务的网站。这是通过<head>部分中的HTMl <link>元素完成的。示例:

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

href指向一个XML-RPC端点,该端点具有可用的pingback.ping方法。

或者通过发送一个特定的HTTP响应头来完成:

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

请参阅启用了ping back的资源

所以,如果你ping别人,别人也应该能够ping你。

Ummm,我认为我们应该使用weblogUpdates.pingweblogUpdates.extendedPing而不是pingback.ping来ping网站的新内容。

pingback.ping用于从一个站点到另一个站点的新链接,而不是用于新内容。

我认为你应该将weblogUpdates.extendedPing与谷歌博客搜索、博客、Pingomatic和weblogUpdates.ping一起用于其他服务器。我创建了一个ping工具,但一些服务器返回了一个http和https错误,我不能给出一个错误Online rpc xml ping