Oppure

Loading
06/08/13 8:54
macco_cl
Ciao a tutti,premetto che sono alle prime armi con il php,dovrei fare un progetto per l'università.

Sono ormai 2 giorni che sto impazzendo senza ottenere alcun risultato dietro le api di bing.

Il mio problema consiste in:

Dato un testo devo effettuare il parsing del testo,suddividendolo per punti,(uso la funzione explode)
e successivamente ogni frase ottenuta dalla suddivisione deve essere passata ad una funzione che esegue la ricerca della frase su internet e ritorna gli url di dove è stata trovata(tramite api di bing),
il progetto deve essere sviluppato in php.

La parte che non riesco a fare è legata alle api,l'altra parte del progetto l'ho già completata.

Ho cercato ovunque su internet trovando parti di codice che non mi sono tornate utili.
Sinceramamente non riesco a capire se il mio AppID è corretto oppure no.

Vi sarei molto grato se sapreste aiutarmi.

Anche perche tra poco tiro giù il muro a testate :rotfl:
aaa
06/08/13 11:46
it.bing.com/dev/en-us/…

controlla l' AppID

developers.bingads.microsoft.com/…

ricorda che è personale.
06/08/13 11:53
macco_cl
ti ringrazio per la risposta ma ho risolto per quanto riguarda l'AppID,ora ho le api funzionanti solo che mi ritornano troppi URL di ricerca,ne vorrei limitare solo ai primi 5 hai idea di come potrei fare?

Inoltre siccome le mie query eseguite tramite API sono frasi vorrei che fossero cercate nella loro totalità e non cercate le singole parole che formano la frase,come potrei fare?

grazie in anticipo per l'aiuto.
aaa
07/08/13 8:58
siccome non ho maii usato le api di bing devi dirmi come ti vengono ritornati gli url e il link diretto alla documentazione al metodo della ricerca
07/08/13 9:03
macco_cl

<?php 

function search($searchstr) {


/****

* Simple PHP application for using the Bing Search API

*/

$acctKey = 'chiave personale';

$rootUri = 'https://api.datamarket.azure.com/Bing/Search';

// Read the contents of the .html file into a string.

$contents = 'vuoto';


// Here is where you'll process the query.

// Encode the query and the single quotes that must surround it.

$query = urlencode($searchstr);

// Get the selected service operation (Web or Image).

$serviceOp = 'Web';
// Construct the full URI for the query.

$requestUri = "$rootUri/$serviceOp?$format=json&Query='$query'"; 

// The rest of the code samples in this tutorial are inside this conditional block.

// Encode the credentials and create the stream context.

$auth = base64_encode("$acctKey:$acctKey");

$data = array(

'http' => array(

'request_fulluri' => true,

// ignore_errors can help debug – remove for production. This option added in PHP 5.2.10

'ignore_errors' => true,

'header' => "Authorization: Basic $auth")

);

$context = stream_context_create($data);

// Get the response from Bing.

$response = file_get_contents($requestUri, 0, $context); 
echo $response;

// Decode the response. 
$jsonObj = json_decode($response); $resultStr = ''; 
// Parse each result according to its metadata type. 

foreach($jsonObj->d->results as $value) 
{ 
	switch ($value->__metadata->type)
 { 
	case 'WebResult': 
		$resultStr .= 
		"<a href=\"{$value->Url}\">{$value->Title}</a><p>{$value->Description}</p>"; 
 break; 
 
	}
} 
// Substitute the results placeholder. Ready to go. 

$contents = str_replace('vuoto', $resultStr, $contents); 

}

return $contents;
}
?>



Questo è il codice che uso se può essere utile.
aaa
07/08/13 12:13
Beh:
$r = 0;
foreach($jsonObj->d->results as $value)
{
        switch ($value->__metadata->type)
 {
        case 'WebResult':
             if ($r < MAX_RISULTATI)
                $resultStr .=
                "<a href=\"{$value->Url}\">{$value->Title}</a><p>{$value->Description}</p>";
 break;
 
        }
}


cambia MAX_RISULTATI con il numero massimo di risultati

P.S. per la ricerca approfondita devi guardare bene le API, io non ti posso aiutare
Ultima modifica effettuata da 07/08/13 12:16
07/08/13 16:47
macco_cl
ti ringrazio per l'aiuto che mi stai dando,il problema che ho letto la documentazione delle API ma non sono riuscito a risolvere ugualmente,perchè in teoria nella documentazione parla di una variabile $top che messa nella query ritorna il numero di risultati voluti,solo che se provo a metterla nella query mi da errore,ma nella documentazione non ho trovato nulla di più,sicuramente sarai più esperto di me,sapresti aiutarmi,non faccio altro che leggere documentazioni da giorni ormai,senza risolvere nulla.
aaa
07/08/13 18:45
Mi dispiace ma non ho mai lavorato con API di terze parti in php, e più di questo non riesco a fare. Posso provare a dirti qualcosa in più se mi dai i link a ciò che non riesci a fare, ma dubito di poterti essere ancora di aiuto........