XML-RPC ping(谷歌和其他)

Posted

技术标签:

【中文标题】XML-RPC ping(谷歌和其他)【英文标题】:XML-RPC pinging (google and others) 【发布时间】:2012-03-23 06:21:44 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

就您而言,执行 XML-RPC 请求 (Example #1)。

如果你关注specification of a pingback,它会是这样的:

$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 的页面,或者更重要的是,这实际上是什么?

启用 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

pingback-enabled resource

因此,如果您 p​​ing 其他人,其他人也应该能够 ping 您。

【讨论】:

我应该按照 PHP 文档轻松提出请求。我不知道方法或我需要发送哪些变量。如果您可以发布指向 google 文档的链接,我真的很感激,因为我找不到它。 @dario111cro:我添加了规范并扩展了示例代码。 @dario111cro:不客气。那些规范不是@google,正如我所见,他们从他们的网站上删除了对它的引用,他们过去有某种自己的API,请参阅web.archive.org/web/20091119080527/http://www.google.co.kr/help/… 根据规范,$targetURI 应该是:“源站点上链接的目标。这应该是启用 pingback 的页面”。如何制作启用 pingback 的页面,或者更重要的是,这实际上是什么? @dario111cro:我再次扩展了答案。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于XML-RPC ping(谷歌和其他)的主要内容,如果未能解决你的问题,请参考以下文章

发布到谷歌和亚马逊

chrome浏览器一键切换搜索引擎,一键切换谷歌和百度搜索

谷歌和Facebook全球性大规模瘫痪!开发者成立了社区继续维护Atom IDE;QQ正式上线注销功能;Symfony 4.3

谷歌和火狐清楚浏览器缓存的快捷键???shift+ctrl+delete

谷歌和HTTPS

Chargify 与亚马逊、谷歌和 PayPal 的支付服务对比?