سؤال

وأنا أحاول أن استخدام البحث لايف 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);
?>
تم تحديد

ومعرف التطبيق بشكل صحيح في التعليمات البرمجية: أنا فقط تمحى من هنا. أنا الحصول على الخطأ التالي:

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. إنها تثلج " http://api.search.live.net/search.wsdl؟AppID = YourAppId "مأخوذة من ( http://msdn.microsoft. كوم / EN-US / مكتبة / dd250965.aspx )

ويمكنك أيضا استخدام API JSON جديد مع بي.

$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 كذلك، ويمكن جلب أساسا بنفس طريقة سلمان تحتاج فقط إلى فك بشكل مختلف.

نصائح أخرى

ونموذج التعليمات البرمجية API ل2.0 على MSDN لكننا لا نملك كاملة نموذج التعليمات البرمجية PHP بها حتى الآن. عينة الأولى مدونة (تشبه الى حد بعيد واحدة في الجواب الذي حصلت عليه بالفعل) في تضمينها في بلوق وظيفة <لأ href = "http://dev.live.com/blogs/livesearch/archive/2009/01/05/ 444.aspx "يختلط =" نوفولو noreferrer "> على البحث لايف مدونة المطور

ويمكنك أن تدرك أن هناك حاليا بعض القضايا مع SOAP في PHP 5.2.6 - يبدو أن خدمة البحث لايف أن تتأثر بها في كل من 1.1 و 2.0. أبسط الحل هو استخدام واجهة أخرى (JSON أو XML)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top