Frage

Ich versuche, Live Search 2.0 zu verwenden, sondern auch ein einfaches Beispiel scheint nicht zu funktionieren. Microsoft Beispielcode nur für 1.1 hat und sie geben nicht heraus AppIDs für diese Version.

Hier ist, was ich versuche, mit:

<?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 korrekt im Code angegeben: Ich löschte es gerade von hier. Ich erhalte die folgende Fehlermeldung:

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
War es hilfreich?

Lösung

Sie kann mit der richtigen Seife api URL für 2.0 beginnen. Es schneit „ http://api.search.live.net/search.wsdl?AppID = YourAppId “entnommen aus ( http://msdn.microsoft. com / en-us / library / dd250965.aspx )

Sie können auch die neue JSON api mit PHP verwenden.

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

Und Theres endlich ein XML-API Sie auch an dem Msdn Link sehen können und es kann Sie einfach es anders entschlüsseln müssen im wesentlichen die gleiche Weise wie die json abgeholt werden.

Andere Tipps

Der Beispielcode für API 2.0 ist auf MSDN, aber wir haben nicht die komplette PHP-Code Probe noch aus. Ein erstes Codebeispiel (sehr ähnlich den in der Antwort, die Sie schon vor) in der Blog-Post enthielt auf der Live Search Developer Blog

Sie können sich bewusst sein, dass es derzeit einige Probleme mit SOAP in PHP 5.2.6 - der Live-Search-Dienst scheint sowohl in 1.1 und 2.0 von ihr betroffen zu sein. Die einfachste Abhilfe ist, eine andere Schnittstelle (JSON oder XML) zu verwenden,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top