質問

私はLive Searchの2.0を使用しようとしているが、でも簡単な例では、動作するようには思えません。マイクロソフトは、わずか1.1のコード例を持っており、彼らはそのバージョンのAppIDsを配っていない。

ここで私がしようとしているものです

<?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が正しくコード内で指定されている:私はちょうどここからそれを消去します。私は次のエラーを取得しています:

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
役に立ちましたか?

解決

あなたは2.0のための適切な石鹸APIのURLを使用して始めることができます。 雪が降る 「 http://api.search.live.net/search.wsdl?AppID = YourAppId には、」( http://msdn.microsoftから採取しました。 COM / EN-US /ライブラリ/ dd250965.aspxする

また、PHPで新しいJSON APIを使用することができます。

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

そして最後にあなたにも、MSDNのリンクを見上げることができ、XML APIをtheresの、それはあなただけ違っそれをデコードする必要があり、JSONと本質的に同じ方法で取り出すことができます。

他のヒント

API 2.0のサンプルコードは、MSDNにあるが、我々はまだ完全なPHPコードのサンプルを持っていません。 ブログの記事<のhref = "http://dev.live.com/blogs/livesearch/archive/2009/01/05/に含ま中(すでに得た答えの1と非常によく似ている)最初のコードサンプルLive Searchの開発者ブログの上444.aspx」のrel = "nofollowをnoreferrer">

あなたは、SOAP を持ついくつかの問題で現在があることに注意してもPHP 5.2.6 - Live Searchのサービスは、1.1と2.0の両方で、それによって影響を受けているようです。最も簡単な回避策は、別のインターフェイスを使用することである(JSON又はXML)

scroll top