Pregunta

Estoy tratando de utilizar Live Search 2.0, pero aún no parece un ejemplo sencillo para trabajar. Microsoft sólo tiene el código de ejemplo para 1.1 y no están dando AppIDs para esa versión.

Esto es lo que estoy tratando con:

<?php
$server = new SoapClient('http://soap.search.msn.com/webservices.asmx?wsdl');

class Search {
    public $Request;
}

class SearchRequest {
    public $AppID;
    public $Query;
    public $CultureInfo;
    public $SafeSearch;
    public $Flags;
    public $Location;
    public $Requests;
}

class SourceRequest {
    public $Source;
    public $Offset;
    public $Count;
    public $FileType;
    public $SortBy;
    public $ResultFields;
    public $SearchTagFilters;
}

$searchRequest = new SourceRequest();
$searchRequest->Source = 'Web';
$searchRequest->Offset = 0;
$searchRequest->Count = 5;
$searchRequest->ResultFields = 'All SearchTagsArray';

$request = new SearchRequest();
$request->AppID = '...';
$request->Query = 'Bill Gates';
$request->CultureInfo = 'en-US';
$request->SafeSearch = 'Off';
$request->Flags = '';
$request->Requests = array($searchRequest);

$search = new Search();
$search->Request = $request;

$server->Search($search);
?>

AppID se especifica correctamente en el código: Me acabas de borrar desde aquí. Estoy consiguiendo el error siguiente:

Array ( [0] => SearchResponse Search(Search $parameters) )
Fatal error: Uncaught SoapFault exception: [soapenv:Client] Client Error in /Users/thardas/Sites/vt9/widgets/ms_livesearch.php:41
Stack trace:
#0 [internal function]: SoapClient->__call('Search', Array)
#1 /Users/thardas/Sites/vt9/widgets/ms_livesearch.php(41): SoapClient->Search(Object(SearchRequest))
#2 /Users/thardas/Sites/vt9/index.php(23): include('/Users/thardas/...')
#3 {main} thrown in /Users/thardas/Sites/vt9/widgets/ms_livesearch.php on line 41
¿Fue útil?

Solución

Se puede comenzar utilizando el correcto url jabón API de 2.0. Nieva " http://api.search.live.net/search.wsdl?AppID = YourAppId " tomada a partir de ( http://msdn.microsoft. com / es-es / library / dd250965.aspx )

También puede utilizar la nueva API JSON con PHP.

$appid = 'Your app id';
$searchitem = 'PHP Manual';
    $request = 'http://api.search.live.net/json.aspx?Appid=' . $appid . '&sources=web&query=' . urlencode( $searchitem);
    $response  = file_get_contents($request);
    $jsonobj  = json_decode($response);
    foreach($jsonobj->SearchResponse->Web->Results as $value)
    {
    //$value->Url
    //$value->Title
    //$value->Description
    } 

Y, por último theres una API XML se puede consultar en el enlace de MSDN, así y puede ser traída esencialmente la misma forma que el JSON sólo tiene que decodificar de manera diferente.

Otros consejos

El código de ejemplo para la API 2.0 es en MSDN, pero no tenemos la muestra completa código PHP a cabo todavía. Un primer ejemplo de código (muy similar a la de la respuesta que ya tienes) en incluido en la entrada del blog en el Live Search Developer Blog

Es posible que tener en cuenta que en la actualidad hay algunas cuestiones con jabón en PHP 5.2.6 - el servicio de búsqueda en vivo parece ser afectada por ella, tanto en 1.1 y 2.0. La solución más simple es utilizar otra interfaz (JSON o XML)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top