Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Advertência
Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram movidas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing através do Azure Marketplace.
Use este início rápido para fazer sua primeira chamada para a API de Pesquisa de Notícias do Bing. Este aplicativo C# simples envia uma consulta de pesquisa de notícias para a API e exibe a resposta JSON.
Embora este aplicativo seja escrito em C#, a API é um serviço Web RESTful compatível com a maioria das linguagens de programação.
O código completo deste exemplo pode ser encontrado no GitHub.
Pré-requisitos
- Qualquer edição do Visual Studio 2017 ou posterior.
- A estrutura Json.NET , disponível como um pacote NuGet.
- Se você estiver usando Linux/MacOS, você pode executar este aplicativo usando Mono.
Criar um recurso do Azure
Comece a usar a API de Pesquisa de Notícias do Bing criando um dos seguintes recursos do Azure:
- Disponível através do portal do Azure até eliminar o recurso.
- Use o nível de preço gratuito para experimentar o serviço e atualize mais tarde para um nível pago para produção.
- Disponível através do portal do Azure até eliminar o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos, em vários serviços de IA do Azure.
Criar e inicializar um projeto
Crie uma nova solução de console C# no Visual Studio. Em seguida, adicione os seguintes namespaces ao arquivo de código principal:
using System; using System.Text; using System.Net; using System.IO; using System.Collections.Generic;
Crie variáveis para o ponto de extremidade da API, sua chave de assinatura e termo de pesquisa. Você pode usar o endpoint global no código abaixo ou usar o endpoint do subdomínio personalizado mostrado no portal do Azure para seu recurso.
const string accessKey = "enter key here"; const string uriBase = "https://api.cognitive.microsoft.com/bing/v7.0/news/search"; const string searchTerm = "Microsoft";
Criar uma estrutura para formatar a resposta da Pesquisa de Notícias do Bing
Defina uma SearchResult
struct para conter os resultados da pesquisa de notícias e as informações do cabeçalho JSON.
struct SearchResult
{
public String jsonResult;
public Dictionary<String, String> relevantHeaders;
}
Criar e tratar um pedido de pesquisa de notícias
Crie um método chamado
BingNewsSearch()
para chamar a API e defina o tipo de retorno para oSearchResult
struct criado anteriormente.Adicione código a esse método nas etapas a seguir.
Construa o URI para a solicitação de pesquisa. O
toSearch
termo de pesquisa deve ser formatado antes de ser anexado à cadeia de caracteres.static SearchResult BingNewsSearch(string toSearch){ var uriQuery = uriBase + "?q=" + Uri.EscapeDataString(toSearch); //...
Execute a solicitação da Web e obtenha a resposta como uma cadeia de caracteres JSON.
WebRequest request = WebRequest.Create(uriQuery); request.Headers["Ocp-Apim-Subscription-Key"] = subscriptionKey; HttpWebResponse response = (HttpWebResponse)request.GetResponseAsync().Result; string json = new StreamReader(response.GetResponseStream()).ReadToEnd();
Crie o objeto de resultado da pesquisa e extraia os cabeçalhos HTTP do Bing. Em seguida, retorne
searchResult
.// Create the result object for return var searchResult = new SearchResult() { jsonResult = json, relevantHeaders = new Dictionary<String, String>() }; // Extract Bing HTTP headers foreach (String header in response.Headers) { if (header.StartsWith("BingAPIs-") || header.StartsWith("X-MSEdge-")) searchResult.relevantHeaders[header] = response.Headers[header]; } return searchResult;
Processar a resposta
No método principal, chame BingNewsSearch()
e armazene a resposta retornada. Em seguida, desserialize o JSON em um objeto onde você pode exibir os valores da resposta.
SearchResult result = BingNewsSearch(searchTerm);
//deserialize the JSON response
dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(result.jsonResult);
Console.WriteLine(jsonObj["value"][0])
Exemplo de resposta JSON
Uma resposta bem-sucedida é retornada em JSON, conforme mostrado no exemplo a seguir:
{
"_type": "News",
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft",
"totalEstimatedMatches": 36,
"sort": [
{
"name": "Best match",
"id": "relevance",
"isSelected": true,
"url": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft"
},
{
"name": "Most recent",
"id": "date",
"isSelected": false,
"url": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft&sortby=date"
}
],
"value": [
{
"name": "Microsoft to open flagship London brick-and-mortar retail store",
"url": "http:\/\/www.contoso.com\/article\/microsoft-to-open-flagshi...",
"image": {
"thumbnail": {
"contentUrl": "https:\/\/www.bing.com\/th?id=ON.F9E4A49EC010417...",
"width": 220,
"height": 146
}
},
"description": "After years of rumors about Microsoft opening a brick-and-mortar...",
"about": [
{
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entiti...",
"name": "Microsoft"
},
{
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entit...",
"name": "London"
}
],
"provider": [
{
"_type": "Organization",
"name": "Contoso"
}
],
"datePublished": "2017-09-21T21:16:00.0000000Z",
"category": "ScienceAndTechnology"
},
. . .
{
"name": "Microsoft adds Availability Zones to its Azure cloud platform",
"url": "https:\/\/contoso.com\/2017\/09\/21\/microsoft-adds-availability...",
"image": {
"thumbnail": {
"contentUrl": "https:\/\/www.bing.com\/th?id=ON.0AE7595B9720...",
"width": 700,
"height": 466
}
},
"description": "Microsoft has begun adding Availability Zones to its...",
"about": [
{
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/a093e9b...",
"name": "Microsoft"
},
{
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/cf3abf7d-e379-...",
"name": "Windows Azure"
},
{
"readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/9cdd061c-1fae-d0...",
"name": "Cloud"
}
],
"provider": [
{
"_type": "Organization",
"name": "Contoso"
}
],
"datePublished": "2017-09-21T09:01:00.0000000Z",
"category": "ScienceAndTechnology"
}
]
}