2017-05-23 3 views
0

Je suis en train de tester la nouvelle recherche personnalisée Bing en utilisant le code PHP ci-dessous. Le résultat est un écran blanc vide sans erreurs. Est-ce parce que ce service est toujours en mode bêta?Bing Recherche personnalisée en utilisant PHP

<?php 
$sURL = "https://api.cognitive.microsoft.com/bingcustomsearch/v5.0/search?q=dogs&customconfig=[mycustomconfigvalue]&responseFilter=Webpages&mkt=en-us&safesearch=Moderate"; 
$key = "[myPrimaryKey]"; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, '1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 'ocp-apim-subscription-key:$key'); 
$content = curl_exec($ch); 

echo $content; 
?> 

Lorsque je tente de vérifier si les clés de l'API travaillent pour moi en utilisant Postman, je reçois une erreur « pourrait n ot obtenir une réponse ».

Cependant, si j'essaie les mêmes valeurs dans https://customsearch.ai sous la section de point final, cela fonctionne parfaitement en affichant la réponse.

Quelqu'un peut-il s'il vous plaît laissez-moi savoir que je ne peux pas exécuter le code en utilisant mon propre code PHP?

Merci

Répondre

1

Erreurs:

1-CURLOPT_HEADER est différent de CURLOPT_HTTPHEADER.
2 - CURLOPT_HTTPHEADER prend un array comme argument, pas un string.
3 - Les variables ($key) se développent uniquement à l'intérieur doubles guillemets.

Essayez:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, 1); # you may want increase this value 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, ["ocp-apim-subscription-key:$key"]); 
$content = curl_exec($ch); 
+0

Je l'ai fait le changement que vous avez mentionné, mais le résultat est le même – user2574948

+1

Quand vous posez une question sur une erreur ** ** TOUJOURS inclure le journal des erreurs ** **. Ajoutez 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'en haut de votre script' php', que retourne-t-il? –

+0

Le rapport d'erreurs a été activé dans les paramètres PHP ini et j'ai également inclus les 2 lignes en haut du code. Malheureusement même résultat que précédemment, pas d'erreurs. – user2574948

0

lui répondis-je cela quelque part. Voici un extrait de php qui fonctionne. Remplacez simplement YOUR_QUERY, YOUR_KEY et YOUR_CUSTOMCONFIG.

$endpoint = 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search'; 
$term = 'YOUR_QUERY'; 
$headers = "Ocp-Apim-Subscription-Key: YOUR_KEY\r\n"; 
$options = array ('http' => array (
         'header' => $headers, 
         'method' => 'GET')); 
$context = stream_context_create($options); 
$result = file_get_contents($url . "?q=" . urlencode($query) . "&customconfig=YOUR_CUSTOMCONFIG&responseFilter=Webpages&mkt=en‌​-us&safesearch=Moder‌​ate", false, $context);