2012-03-05 18 views

Respuesta

7

En lo que a ti respecta a hacer la petición XML-RPC (Example #1).

Si sigue la specification of a pingback, se vería así:

$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); 
} 

que le daría el siguiente resultado:

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

Generalmente, si usted no sabe qué método se llama , también puedes probar XML-RPC Introspection, pero no todos los servidores XML-RPC ofrecen eso.


Se preguntó en un comentario:

De acuerdo a las especificaciones, $targetURI debería ser: "El destino del enlace en el sitio de origen Esta debe ser una página habilitado-pingback". ¿Cómo puedo hacer que pingback active la página, o más importante, qué es eso en realidad?

Un sitio habilitado para pingback es un sitio web que también anuncia un servicio de pinback de XML-RPC. Eso se hace con el elemento HTMl <link> en la sección <head>. Ejemplo:

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

Los href puntos a un punto final XML-RPC que tiene el método pingback.ping disponible.

O se hace mediante el envío de un encabezado de respuesta HTTP specifc:

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

Ver pingback-enabled resource.

Por lo tanto, si hace ping a otros, otros también deberían poder hacer un ping.

+0

Debería realizar una solicitud fácilmente siguiendo la documentación de PHP. No sé el método o qué variables necesito enviar. Realmente me gustaría consultar si puedes publicar un enlace a la documentación de google, ya que no puedo encontrarlo. – dario111cro

+1

@ dario111cro: agregué las especificaciones y extendí el código de ejemplo. – hakre

+0

Muchas gracias. – dario111cro

1

Ummm, creo que deberíamos usar weblogUpdates.ping o weblogUpdates.extendedPing en lugar de pingback.ping para hacer ping a un sitio sobre contenido nuevo.

pingback.ping es para un nuevo enlace de un sitio a otro, no hay nuevo contenido.

0

Creo que deberías usar weblogUpdates.extendedPing con google blog search, weblogs, Pingomatic y weblogUpdates.ping para otro servidor. Creé una herramienta de ping, pero algunos servidores devuelven un error con http y https, no puedo dar un error Online rpc xml ping