Referência da API de Pesquisa de Empresas Locais do Bing v7
Aviso
A 30 de outubro de 2020, as APIs de Pesquisa do Bing passaram dos serviços de IA do Azure para os Serviços Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, veja 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, veja Criar um recurso de Pesquisa do Bing através do Azure Marketplace.
A API de Pesquisa de Empresas Locais envia uma consulta de pesquisa para o Bing para obter resultados que incluam restaurantes, hotéis ou outras empresas locais. Para locais, a consulta pode especificar o nome da empresa local ou uma categoria (por exemplo, restaurantes perto de mim). Os resultados de entidades incluem pessoas, locais ou coisas. Neste contexto, existem entidades empresariais, estados, países/regiões, etc.
Esta secção fornece detalhes técnicos sobre os objetos de resposta e os parâmetros de consulta e os cabeçalhos que afetam os resultados da pesquisa. Para obter exemplos que mostram como efetuar pedidos, veja Início rápido da Pesquisa local em C# ou Início rápido de Java de Pesquisa de Empresas Locais.
Para obter informações sobre os cabeçalhos que os pedidos devem incluir, consulte Cabeçalhos.
Para obter informações sobre os parâmetros de consulta que os pedidos devem incluir, veja Parâmetros de consulta.
Para obter informações sobre os objetos JSON que a resposta inclui, veja Objetos de resposta.
Para obter informações sobre a utilização permitida e a apresentação de resultados, veja Requisitos de utilização e apresentação.
Ponto final
Para pedir resultados empresariais locais, envie um pedido GET para:
https://api.cognitive.microsoft.com/bing/v7.0/localbusinesses/search
O pedido tem de utilizar o protocolo HTTPS.
Nota
O comprimento máximo do URL é de 2048 carateres. Para garantir que o comprimento do URL não excede o limite, o comprimento máximo dos parâmetros de consulta deve ser inferior a 1500 carateres. Se o URL exceder os 2048 carateres, o servidor devolve 404 Não encontrado.
Cabeçalhos
Seguem-se os cabeçalhos que um pedido e uma resposta podem incluir.
Cabeçalho | Description |
---|---|
Aceitar | Cabeçalho de pedido opcional. O tipo de suporte de dados predefinido é application/json. Para especificar que a resposta utiliza JSON-LD, defina o cabeçalho Aceitar como aplicação/ld+json. |
Accept-Language | Cabeçalho de pedido opcional. Uma lista separada por vírgulas dos idiomas que vão ser utilizados nas cadeias da interface de utilizador. A lista está em ordem decrescente de preferência. Para obter mais informações, incluindo o formato esperado, veja RFC2616. Este cabeçalho e o parâmetro de consulta setLang são mutuamente exclusivos. Não especifique ambos. Se definir este cabeçalho, também tem de especificar o parâmetro de consulta cc. Para determinar o mercado do qual devolver resultados, o Bing utiliza o primeiro idioma suportado que encontra na lista e combina-o com o valor do parâmetro cc . Se a lista não incluir um idioma suportado, o Bing encontra o idioma e o mercado mais parecidos que suportem o pedido ou utiliza um mercado agregado ou predefinido para devolver os resultados. Para determinar o mercado que o Bing utiliza, veja o cabeçalho BingAPIs-Market.Utilize este cabeçalho o parâmetro de consulta cc apenas se especificar vários idiomas. Caso contrário, utilize os parâmetros de consulta mkt e setLang.As cadeias da interface de utilizador são cadeias utilizadas como etiquetas na interface de utilizador. Os objetos de resposta JSON têm poucas cadeias de interface de utilizador. Todas as ligações para propriedades de Bing.com nos objetos de resposta aplicam o idioma especificado. |
BingAPIs-Market | O cabeçalho da resposta. O mercado que o pedido utiliza. O formulário é <languageCode-countryCode>><. Por exemplo: en-US. |
BingAPIs-TraceId | O cabeçalho da resposta. O ID da entrada de registo que contém os detalhes do pedido. Quando ocorrer um erro, capture este ID. Se não conseguir determinar nem resolver o problema, inclua o ID juntamente com as outras informações que enviar à equipa de suporte. |
Ocp-Apim-Subscription-Key | Cabeçalho de pedido obrigatório. A chave de subscrição que recebeu quando se inscreveu neste serviço nos serviços de IA do Azure. |
Pragma | Cabeçalho de pedido opcional Por predefinição, o Bing devolve conteúdo em cache, se disponível. Para impedir que o Bing devolva conteúdo em cache, defina o cabeçalho Pragma como no-cache (por exemplo, Pragma: no-cache). |
User-Agent | Cabeçalho de pedido opcional. O agente de utilizador que origina o pedido. O Bing utiliza o agente de utilizador para proporcionar uma experiência otimizada aos utilizadores de dispositivos móveis. Embora seja opcional, recomenda-se que especifique sempre este cabeçalho. O agente de utilizador deve ser a mesma cadeia que qualquer browser geralmente utilizado envia. Para obter informações sobre os agentes de utilizador, veja RFC 2616. Pode ver exemplos de cadeias de agente de utilizador abaixo:
|
X-MSEdge-ClientID | Cabeçalho de pedido e resposta opcional. O Bing utiliza este cabeçalho para proporcionar um comportamento consistente nas chamada à API do Bing aos utilizadores. O Bing lança, muitas vezes, funcionalidades e melhorias novas e utiliza o ID de cliente como uma chave para atribuir tráfego aos diferentes lançamentos. Se não utilizar o mesmo ID de cliente para um utilizador em vários pedidos, o Bing poderá atribuir esse utilizador a vários lançamentos sobrepostos. A atribuição a vários lançamentos sobrepostos pode provocar uma experiência de utilizador inconsistente. Por exemplo, se a atribuição de lançamento do segundo pedido for diferente da do primeiro, a experiência poderá ser inesperada. Além disso, o Bing pode utilizar o ID de cliente para personalizar os resultados da Web o histórico de pesquisas desse ID, proporcionando uma experiência mais rica ao utilizador. O Bing também utiliza este cabeçalho para ajudar a melhorar as classificações dos resultados ao analisar a atividade gerada por um ID de cliente. As melhorias à relevância ajudam a que as APIs do Bing devolvam resultados com melhor qualidade, o que, por sua vez, origina taxas de cliques mais altas para o consumidor da API. IMPORTANTE: embora seja opcional, deve ver este cabeçalho como obrigatório. Persistir o ID de cliente em vários pedidos para a mesma combinação de utilizador final e dispositivo permite 1) que o consumidor da API receba uma experiência de utilizador consistente e 2) taxas de cliques mais altas, através de resultados com melhor qualidade das APIs do Bing. As regras abaixo são as regras de utilização básicas aplicáveis a este cabeçalho.
NOTA: as respostas do Bing podem incluir ou não este cabeçalho. Se a resposta incluir este cabeçalho, capture o ID de cliente e utilize-o em todos os pedidos do Bing subsequentes do utilizador nesse dispositivo. NOTA: se incluir X-MSEdge-ClientID, não pode incluir cookies no pedido. |
X-MSEdge-ClientIP | Cabeçalho de pedido opcional. O endereço IPv4 ou IPv6 do dispositivo cliente. O endereço IP é utilizado para detetar a localização do utilizador. O Bing utiliza as informações de localização para determinar o comportamento do safesearch. NOTA: embora seja opcional, recomenda-se que especifique sempre este cabeçalho e o cabeçalho X-Search-Location. Não ofusque a morada (por exemplo, ao alterar o último octeto para 0). Ofuscar a morada faz com que a localização não esteja perto da localização efetiva do dispositivo, o que pode fazer com que o Bing sirva resultados errados. |
X-Search-Location | Cabeçalho de pedido opcional. Uma lista separada por ponto e vírgula de pares de chaves/valores que descreve a localização geográfica do cliente. O Bing utiliza as informações de localização para determinar o comportamento do safesearch e para devolver conteúdos locais relevantes. Indique o par chave/valor como <chave>:<valor>. As chaves seguintes são as chaves utilizadas para especificar a localização do utilizador.
NOTA: Recomendamos que especifique sempre a localização geográfica do utilizador. Especificar a localização é particularmente importante se o endereço IP do cliente não refletir, com precisão, a localização física do utilizador (por exemplo, se este utilizar VPN). Para obter os melhores resultados, deve incluir este cabeçalho e o cabeçalho X-MSEdge-ClientIP, mas deve incluir este cabeçalho, no mínimo. |
Nota
Não se esqueça de que os Termos de Utilização requerem conformidade com toda a legislação aplicável, incluindo a relativa à utilização destes cabeçalhos. Por exemplo, em determinadas jurisdições, como a Europa, há requisitos para obter o consentimento do utilizador antes de colocar certos tipos de dispositivos de monitorização nos dispositivos dos utilizadores.
Parâmetros de consulta
O pedido pode incluir os seguintes parâmetros de consulta. Veja a coluna Obrigatório para obter os parâmetros necessários. Tem de codificar o URL dos parâmetros de consulta.
Name | Valor | Tipo | Necessário |
---|---|---|---|
contagem | O número de resultados a devolver, começando pelo índice especificado pelo offset parâmetro. |
String | No |
localCategories | Lista de opções que definem a pesquisa por categoria empresarial. Veja Pesquisa de Categorias empresariais locais | String | No |
mkt | O mercado de onde os resultados provêm. Para obter uma lista de possíveis valores de mercado, veja Códigos de Mercado. NOTA: Atualmente, a API de Pesquisa de Empresas Locais só suporta o mercado e o idioma en-us. |
String | Yes |
desvio | O índice para iniciar os resultados especificados count pelo parâmetro. |
Número inteiro | No |
q | O termo de pesquisa do utilizador. | String | No |
responseFormat | O tipo de suporte de dados a utilizar para a resposta. Seguem-se os possíveis valores não sensíveis a maiúsculas e minúsculas.
A predefinição é JSON. Para obter informações sobre os objetos JSON que a resposta contém, veja Objetos de Resposta. Se especificar JsonLd, o corpo da resposta inclui objetos JSON-LD que contêm os resultados da pesquisa. Para obter informações sobre o JSON-LD, consulte JSON-LD. |
String | No |
safeSearch | É um filtro utilizado para filtrar conteúdo para adultos. Os valores seguintes são os possíveis valores do filtro, não sensíveis a maiúsculas e minúsculas.
A predefinição é Moderado. NOTA: Se o pedido for proveniente de um mercado em que a política de adultos do Bing requer que safeSearch esteja definida como Estrita, o Bing ignora o safeSearch valor e utiliza Strict.NOTA: se utilizar o operador de consulta site: , existe a possibilidade de a resposta poder conter conteúdos para adultos, independentemente da definição do parâmetro de consulta safeSearch . Utilize site: apenas se tiver conhecimento do conteúdo do site e se o seu cenário suportar a possibilidade de conteúdos para adultos. |
String | No |
setLang | O idioma a utilizar nas cadeias da interface de utilizador. Especifique o idioma com o código de idioma ISO 639-1 de duas letras. Por exemplo, o código de idioma de inglês é EN. A predefinição é EN (inglês). Embora seja opcional, deve indicar sempre o idioma. Normalmente, setLang é definido como o mesmo idioma especificado por mkt , a não ser que o utilizador queira que as cadeias da interface de utilizador sejam apresentadas noutro idioma.Este parâmetro e o cabeçalho Accept-Language são mutuamente exclusivos. Não especifique ambos. As cadeias da interface de utilizador são cadeias utilizadas como etiquetas na interface de utilizador. Os objetos de resposta JSON têm poucas cadeias de interface de utilizador. Além disso, todas as ligações para propriedades de Bing.com nos objetos de resposta aplicam o idioma especificado. |
String | No |
Objetos de Resposta
Seguem-se os objetos de resposta JSON que a resposta pode incluir. Se o pedido for bem-sucedido, o objeto de nível superior na resposta é o objeto SearchResponse . Se o pedido falhar, o objeto de nível superior é o objeto ErrorResponse .
Objeto | Description |
---|---|
Local | Define informações sobre uma empresa local, como um restaurante ou hotel. |
Erro
Define o erro que ocorreu.
Elemento | Descrição | Tipo |
---|---|---|
código | O código de erro que identifica a categoria de erro. Para obter uma lista de códigos possíveis, veja Códigos de Erro. | String |
mensagem | Descrição do erro. | String |
moreDetails | Uma descrição que fornece informações adicionais sobre o erro. | String |
parâmetro | O parâmetro de consulta no pedido que causou o erro. | String |
subCódigo | O código de erro que identifica o erro. Por exemplo, se code for InvalidRequest, subCode poderá ser ParameterInvalid ou ParameterInvalidValue. |
String |
valor | O valor do parâmetro de consulta que não era válido. | String |
ErrorResponse
O objeto de nível superior que a resposta inclui quando o pedido falha.
Name | Valor | Tipo |
---|---|---|
_type | Escreva sugestão. | String |
erros | Uma lista de erros que descrevem os motivos pelos quais o pedido falhou. | Erro[] |
Licença
Define a licença sob a qual o texto ou fotografia pode ser utilizado.
Name | Valor | Tipo |
---|---|---|
name | O nome da licença. | String |
url | O URL para um site onde o utilizador pode obter mais informações sobre a licença. Utilize o nome e o URL para criar uma hiperligação. |
String |
Ligação
Define os componentes de uma hiperligação.
Name | Valor | Tipo |
---|---|---|
_type | Escreva sugestão. | String |
texto | O texto a apresentar. | String |
url | Um URL. Utilize o URL e o texto a apresentar para criar uma hiperligação. | String |
Organização
Define um publicador.
Tenha em atenção que um publicador pode indicar o respetivo nome, o respetivo site ou ambos.
Name | Valor | Tipo |
---|---|---|
name | O nome do editor. | String |
url | O URL para o site do editor. Tenha em atenção que o publicador pode não fornecer um site. |
String |
Lugar
Define informações sobre uma empresa local, como um restaurante ou hotel.
Name | Valor | Tipo |
---|---|---|
_type | Sugestão de tipo, que pode ser definida como uma das seguintes opções:
|
String |
address | O endereço postal do local onde a entidade está localizada. | PostalAddress |
entityPresentationInfo | Informações adicionais sobre a entidade, como sugestões que pode utilizar para determinar o tipo da entidade. Por exemplo, seja um restaurante ou hotel. O entityScenario campo está definido como ListItem. |
EntityPresentationInfo |
name | O nome da entidade. | String |
telefone | O número de telefone da entidade. | String |
url | O URL para o site da entidade. Utilize este URL juntamente com o nome da entidade para criar uma hiperligação que, quando clicada, leva o utilizador ao site da entidade. |
String |
webSearchUrl | O URL para o resultado de pesquisa do Bing para este local. | String |
QueryContext
Define o contexto de consulta que o Bing utilizou para o pedido.
Elemento | Descrição | Tipo |
---|---|---|
adultIntent | Um valor booleano que indica se a consulta especificada tem a intenção de adulto. O valor é verdadeiro se a consulta tiver uma intenção de adulto; caso contrário, falso. | Booleano |
alterationOverrideQuery | A cadeia de consulta a utilizar para forçar o Bing a utilizar a cadeia original. Por exemplo, se a cadeia de consulta estiver a salgar para baixo, a cadeia de consulta de substituição será +saling downwind. Lembre-se de codificar a cadeia de consulta que resulta em %2Bsaling+downwind. Este campo só é incluído se a cadeia de consulta original contiver um erro ortográfico. |
String |
alteredQuery | A cadeia de consulta utilizada pelo Bing para executar a consulta. O Bing utiliza a cadeia de consulta alterada se a cadeia de consulta original contiver erros ortográficos. Por exemplo, se a cadeia de consulta for saling downwind , a cadeia de consulta alterada será sailing downwind .Este campo só é incluído se a cadeia de consulta original contiver um erro ortográfico. |
String |
askUserForLocation | Um valor booleano que indica se o Bing requer a localização do utilizador para fornecer resultados precisos. Se especificou a localização do utilizador com os cabeçalhos X-MSEdge-ClientIP e X-Search-Location , pode ignorar este campo. Para consultas com conhecimento da localização, como "meteorologia de hoje" ou "restaurantes perto de mim" que precisam da localização do utilizador para fornecer resultados precisos, este campo está definido como verdadeiro. Para consultas com conhecimento de localização que incluem a localização (por exemplo, "Meteorologia de Seattle"), este campo está definido como falso. Este campo também está definido como falso para consultas que não têm conhecimento de localização, como "best sellers". |
Booleano |
originalQuery | A cadeia de consulta, conforme especificado no pedido. | String |
Identificável
Name | Valor | Tipo |
---|---|---|
ID | Um identificador de recurso | String |
RankingGroup
Define um grupo de resultados de pesquisa, como mainline.
Name | Valor | Tipo |
---|---|---|
itens | Uma lista dos resultados da pesquisa a apresentar no grupo. | RankingItem |
RankingItem
Define um item de resultado de pesquisa a apresentar.
Name | Valor | Tipo |
---|---|---|
resultIndex | Um índice baseado em zero do item na resposta a apresentar. Se o item não incluir este campo, apresente todos os itens na resposta. Por exemplo, apresente todos os artigos de notícias na resposta Notícias. | Número inteiro |
answerType | A resposta que contém o item a apresentar. Por exemplo, Notícias. Utilize o tipo para encontrar a resposta no objeto SearchResponse. O tipo é o nome de um campo SearchResponse. No entanto, utilize o tipo de resposta apenas se este objeto incluir o campo de valor; caso contrário, ignore-o. |
String |
textualIndex | O índice da resposta em textualAnswers a apresentar. | Número Inteiro Não Assinado |
valor | O ID que identifica uma resposta a apresentar ou um item de uma resposta a apresentar. Se o ID identificar uma resposta, apresente todos os itens da resposta. | Identificável |
RankingResponse
Define onde o conteúdo da página de resultados da pesquisa deve ser colocado e por que ordem.
SearchResponse
Define o objeto de nível superior que a resposta inclui quando o pedido é bem-sucedido.
Tenha em atenção que se o serviço suspeitar de um ataque denial of service, o pedido será bem-sucedido (o código de estado HTTP é 200 OK); no entanto, o corpo da resposta estará vazio.
Name | Valor | Tipo |
---|---|---|
_type | Escreva sugestão, que está definida como SearchResponse. | String |
realiza | Uma lista de entidades relevantes para a consulta de pesquisa. | Objeto JSON |
queryContext | Um objeto que contém a cadeia de consulta que o Bing utilizou para o pedido. Este objeto contém a cadeia de consulta, conforme introduzido pelo utilizador. Também pode conter uma cadeia de consulta alterada que o Bing utilizou para a consulta se a cadeia de consulta contiver um erro ortográfico. |
QueryContext |
Códigos de erro
Seguem-se os possíveis códigos de estado HTTP que um pedido devolve.
Código de Estado | Description |
---|---|
200 | Com êxito. |
400 | Um dos parâmetros de consulta está em falta ou não é válido. |
401 | A chave de subscrição está em falta ou não é válida. |
403 | O utilizador é autenticado (por exemplo, utilizou uma chave de subscrição válida), mas não tem permissão para o recurso pedido. O Bing também poderá devolver este estado se o autor da chamada exceder a quota de consultas por mês. |
410 | O pedido utilizou HTTP em vez do protocolo HTTPS. HTTPS é o único protocolo suportado. |
429 | O autor da chamada excedeu as consultas por segundo de quota. |
500 | Erro de servidor inesperado. |
Se o pedido falhar, a resposta contém um objeto ErrorResponse , que contém uma lista de objetos de Erro que descrevem o que causou o erro. Se o erro estiver relacionado com um parâmetro, o parameter
campo identifica o parâmetro que é o problema. Se o erro estiver relacionado com um valor de parâmetro, o value
campo identifica o valor que não é válido.
{
"_type": "ErrorResponse",
"errors": [
{
"code": "InvalidRequest",
"subCode": "ParameterMissing",
"message": "Required parameter is missing.",
"parameter": "q"
}
]
}
{
"_type": "ErrorResponse",
"errors": [
{
"code": "InvalidAuthorization",
"subCode": "AuthorizationMissing",
"message": "Authorization is required.",
"moreDetails": "Subscription key is not recognized."
}
]
}
Seguem-se os possíveis valores de código de erro e código de sub-erro.
Código | SubCode | Description |
---|---|---|
ServerError | UnexpectedError ResourceError NotImplemented |
O código de estado HTTP é 500. |
InvalidRequest | ParameterMissing ParameterInvalidValue HttpNotAllowed Bloqueado |
O Bing devolve InvalidRequest sempre que qualquer parte do pedido não for válida. Por exemplo, um parâmetro necessário está em falta ou um valor de parâmetro não é válido. Se o erro for ParameterMissing ou ParameterInvalidValue, o código de estado HTTP é 400. Se utilizar o protocolo HTTP em vez de HTTPS, o Bing devolve HttpNotAllowed e o código de estado HTTP é 410. |
RateLimitExceeded | Sem subcódigos | O Bing devolve RateLimitExceeded sempre que exceder as consultas por segundo (QPS) ou a quota de consultas por mês (QPM). Se exceder o QPS, o Bing devolve o código de estado HTTP 429 e, se exceder o QPM, o Bing devolve 403. |
InvalidAuthorization | AuthorizationMissing AuthorizationRedundancy |
O Bing devolve InvalidAuthorization quando o Bing não consegue autenticar o autor da chamada. Por exemplo, o Ocp-Apim-Subscription-Key cabeçalho está em falta ou a chave de subscrição não é válida.A redundância ocorre se especificar mais do que um método de autenticação. Se o erro for InvalidAuthorization, o código de estado HTTP é 401. |
InsufficientAuthorization | AuthorizationDisabled AuthorizationExpired |
O Bing devolve InsufficientAuthorization quando o autor da chamada não tem permissões para aceder ao recurso. Isto pode ocorrer se a chave de subscrição tiver sido desativada ou tiver expirado. Se o erro for InsufficientAuthorization, o código de estado HTTP é 403. |