Rechercher des actualités avec l’API Recherche d’actualités Bing

Avertissement

Le 30 octobre 2020, les API de recherche Bing sont passées des services Azure AI aux services de recherche Bing. Cette documentation est fournie à des fins de référence uniquement. Pour accéder à la documentation mise à jour, consultez la documentation de l’API Recherche Bing. Pour obtenir des instructions sur la création de nouvelles ressources Azure pour Recherche Bing, consultez Créer une ressource Recherche Bing à l’aide de Place de marché Azure.

L’API Recherche d’images Bing facilite l’intégration des capacités de recherche d’actualités cognitive de Bing dans vos applications.

L’API Recherche d’actualités Bing recherche et retourne naturellement des articles d’actualité pertinents, mais elle fournit aussi plusieurs fonctionnalités de récupération d’actualités intelligente et ciblée sur le web.

Suggérer et utiliser des termes de recherche

Si vous fournissez une zone de recherche dans laquelle l’utilisateur entre son terme de recherche, utilisez l’API Suggestion automatique Bing pour améliorer l’expérience. À mesure que l’utilisateur tape des termes de recherche, l’API suggère des chaînes de requête.

Une fois que l’utilisateur a entré son terme de recherche, encodez-le sous forme d’URL avant de définir le paramètre de requête q. Par exemple, si l’utilisateur entre sailing dinghies, définissez q avec la valeur sailing+dinghies ou sailing%20dinghies.

Obtenir des actualités générales

Pour obtenir des articles d’actualités généraux à partir du web en rapport avec le terme de recherche de l’utilisateur, envoyez la requête GET suivante :

GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=sailing+dinghies&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com

Si vous appelez l’une des API Bing pour la première fois, n’incluez pas l’en-tête ID client. Indiquez uniquement l’ID client si vous avez précédemment appelé une API Bing et si Bing a renvoyé un ID client pour la combinaison utilisateur/appareil.

Pour obtenir des actualités à partir d’un domaine spécifique, utilisez l’opérateur de requête site:.

GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=sailing+dinghies+site:contososailing.com&mkt=en-us HTTP/1.1

L’exemple de code JSON suivant affiche la réponse à la requête précédente. Pour respecter les conditions d’utilisation et d’affichage des API de recherche Bing, vous devez afficher chaque article d’actualités dans l’ordre dans lequel il apparaît dans la réponse. Si l’article comporte un cluster d’articles, vous devez indiquer qu’il existe des articles associés et les afficher sur demande.

{
    "_type" : "News",
    "readLink" : "https:\/\/api.cognitive.microsoft.com\/bing\/v5\/news\/search?q=sailing+dinghies",
    "totalEstimatedMatches" : 88400,
    "value" : [{
        "name" : "Sailing Vies for Four Trophies",
        "url" : "http:\/\/www.bing.com\/cr?IG=CCE2F06CA750455891FE99A72...",
        "image" : {
            "thumbnail" : {
                "contentUrl" : "https:\/\/www.bing.com\/th?id=ON.9C23AA5...",
                "width" : 650,
                "height" : 341
            }
        },
        "description" : "College Rankings, presented by Zim...",
        "provider" : [{
            "_type" : "Organization",
            "name" : "contoso.com"
        }],
        "datePublished" : "2017-04-14T15:28:00"
    },

    ...

    {
        "name" : "Fabrikam Sailing Club to host Mirror Dinghy...",
        "url" : "http:\/\/www.bing.com\/cr?IG=CCE2F06CA750455891F...",
        "image" : {
            "thumbnail" : {
                "contentUrl" : "https:\/\/www.bing.com\/th?id=ON.36...",
                "width" : 448,
                "height" : 300
            }
        },
        "description" : "The sailing club that trained Olympian Ben...",
        "provider" : [{
            "_type" : "Organization",
            "name" : "Contoso"
        }],
        "datePublished" : "2017-04-04T11:02:00",
        "category" : "Sports"
    }]
}

La réponse de type actualités répertorie les articles d’actualités que Bing considère comme pertinents vis-à-vis de la requête. Le champ totalEstimatedMatches contient une estimation du nombre d’articles disponibles pour visualisation. Pour plus d’informations sur la pagination des articles, consultez Pagination des actualités.

Chaque article d’actualités de la liste inclut le nom de l’article, une description et l’URL de l’article sur le site web de l’hôte. Si l’article contient une image, l’objet inclut une miniature de l’image. Utilisez name et url pour créer un lien hypertexte permettant à l’utilisateur d’accéder à l’article d’actualité sur le site de l’hôte. Si l’article inclut une image, rendez-la également interactive en utilisant url. Veillez à utiliser provider pour attribuer l’article.

Si Bing peut déterminer la catégorie d’un article d’actualités, l’article inclut le champ category.

Obtenir les principales actualités du jour

Pour obtenir les articles les plus populaires du jour, vous pouvez envoyer la même demande d’actualités générales qu’auparavant, en laissant le paramètre q non défini.

GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com

La réponse à une requête portant sur les principales actualités est presque identique à celle concernant les actualités générales. Toutefois, la réponse news n’inclut pas le champ totalEstimatedMatches, car il existe un nombre fixe de résultats. Le nombre d’articles d’actualités principales peut varier en fonction du cycle d’actualités. Veillez à utiliser le champ provider pour attribuer l’article.

Obtenir des actualités par catégorie

Pour obtenir des articles d’actualités par catégorie, par exemple les principaux articles de sport ou de divertissement, envoyez la requête GET suivante à Bing :

GET https://api.cognitive.microsoft.com/bing/v7.0/news?category=sports&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com

Utilisez le paramètre de requête category pour spécifier la catégorie d’articles à obtenir. Pour connaître la liste des catégories d’actualités que vous pouvez spécifier, consultez News Categories by Market.

La réponse à une requête portant sur les actualités par catégorie est presque identique à celle concernant les actualités générales. Toutefois, les articles appartiennent tous à la catégorie spécifiée.

Obtenir les titres de l’actualité

Pour demander des articles sur les titres de l’actualité et recevoir des articles de toutes les catégories d’actualités, envoyez la requête GET suivante à Bing :

GET https://api.cognitive.microsoft.com/bing/v7.0/news?mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-MSEdge-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com

N’incluez pas le paramètre de requête category.

La réponse à une requête portant sur les titres de l’actualité est identique à celle concernant les principales actualités du jour. Si l’article est un article de « gros titre », son champ headline est défini sur true.

Par défaut, la réponse inclut jusqu’à 12 articles de gros titre. Pour changer le nombre d’articles de gros titre à retourner, spécifiez le paramètre de requête headlineCount. La réponse inclut également jusqu’à quatre articles « hors gros titre » par catégorie d’actualités.

La réponse comptabilise les clusters comme un seul article. Un cluster pouvant avoir plusieurs articles, la réponse peut inclure plus de 12 articles de gros titre et plus de quatre articles hors gros titre par catégorie.

Pour obtenir les sujets d’actualité tendance sur les réseaux sociaux, envoyez la requête GET suivante à Bing :

GET https://api.cognitive.microsoft.com/bing/v7.0/news/trendingtopics?mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
X-MSAPI-UserState: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com

Notes

Les rubriques tendance sont disponibles uniquement sur les marchés en-US et zh-CN.

Le code JSON suivant est la réponse à la requête précédente. Chaque article d’actualités tendance inclut une image associée, l’indicateur « Dernières nouvelles » et une URL vers les résultats de recherche Bing pour l’article. Utilisez l’URL du champ webSearchUrl pour diriger l’utilisateur vers la page des résultats de la recherche Bing. Ou utilisez le texte de requête pour appeler l’API Recherche Web afin d’afficher les résultats vous-même.

{
    "_type" : "TrendingTopics",
    "value" : [{
        "name" : "Canada pot measure",
        "image" : {
            "url" : "https:\/\/www.bing.com\/th?id=OPN.RTNews_hHD...",
            "provider" : [{
                "_type" : "Organization",
                "name" : "Contoso Images"
            }]
        },
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=070292D8CEDD...",
        "isBreakingNews" : false,
        "query" : {
            "text" : "Canada marijuana"
        }
    },
    {
        "name" : "Down on Vegas move",
        "image" : {
            "url" : "https:\/\/www.bing.com\/th?id=OPN.RTNews_Bfbmg8h...",
            "provider" : [{
                "_type" : "Organization",
                "name" : "Contoso"
            }]
        },
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=070292D8CEDD...",
        "isBreakingNews" : false,
        "query" : {
            "text" : "Marcus Appel Las Vegas"
        }
    },

    ...

    ]
}

S’il existe d’autres articles associés à un article d’actualités, celui-ci peut-être inclure le champ clusteredArticles. L’exemple suivant montre un article avec des articles en cluster.

    {
        "name" : "Playoffs 2017: Betting lines, point spreads...",
        "url" : "http:\/\/www.bing.com\/cr?IG=4B7056CEC271408997D115...",
        "image" : {
            "thumbnail" : {
                "contentUrl" : "https:\/\/www.bing.com\/th?id=ON.D7B1...",
                "width" : 700,
                "height" : 393
            }
        },
        "description" : "April 14, 2017 3:37pm EDT April 14, 2017 3:34pm...",
        "provider" : [{
            "_type" : "Organization",
            "name" : "Contoso"
        }],
        "datePublished" : "2017-04-14T19:43:00",
        "category" : "Sports",
        "clusteredArticles" : [{
            "name" : "Playoffs 2017: Betting odds, favorites to win...",
            "url" : "http:\/\/www.bing.com\/cr?IG=4B7056CEC271408997D1159E...",
            "description" : "April 14, 2017 3:30pm EDT April 14, 2017 3:27pm...",
            "provider" : [{
                "_type" : "Organization",
                "name" : "Contoso"
            }],
            "datePublished" : "2017-04-14T19:37:00",
            "category" : "Sports"
        }]
    },

Demandes de limitation

Le service et votre type d’abonnement déterminent le nombre de requêtes par seconde (RPS) que vous pouvez formuler. Assurez-vous que votre application inclut la logique permettant de respecter votre quota. Si la limite RPS est atteinte ou dépassée, la requête échoue et un code d’état HTTP 429 est renvoyé. La réponse inclut l’en-tête Retry-After, qui indique le délai d’attente que vous devez respecter avant d’envoyer une autre requête.

Déni de service (DOS) et limitation de requêtes

Le service établit une distinction entre une attaque par déni de service et une violation du nombre RPS. Si le service suspecte une attaque par déni de service, la requête réussit (le code d’état HTTP est 200 OK). Toutefois, le corps de la réponse est vide.

Étapes suivantes