Referencia de Bing Local Business Search API v7
Advertencia
El 30 de octubre de 2020, las API de Bing Search se trasladaron de los servicios de Azure AI a los servicios de Bing Search. Esta documentación se proporciona solo como referencia. Para obtener documentación actualizada, consulte la documentación de Bing Search API. Para obtener instrucciones sobre cómo crear nuevos recursos de Azure para Bing Search, consulte el artículo sobre la creación de un recurso de Bing Search a través de Azure Marketplace.
Bing Local Business Search API envía una consulta de búsqueda a Bing para obtener resultados que incluyan restaurantes, hoteles u otros negocios locales. En el caso de los lugares, la consulta puede especificar el nombre del negocio local o una categoría (por ejemplo, restaurantes próximos a mi ubicación). Los resultados de entidad incluyen personas, lugares o cosas. A este contexto pertenecen entidades empresariales, estados, países o regiones, etc.
En esta sección se proporcionan detalles técnicos acerca de los objetos de respuesta, y los parámetros de consulta y los encabezados que afectan a los resultados de la búsqueda. Para obtener ejemplos que muestran cómo realizar solicitudes, consulte la Guía de inicio rápido de Local Business Search en C# o la Guía de inicio rápido de Local Business Search para Java.
Para obtener información acerca de los encabezados que las solicitudes deben incluir, consulte Encabezados.
Para obtener información acerca de los parámetros de consulta que las solicitudes deben incluir, consulte Parámetros de consulta.
Para obtener información acerca de los objetos JSON que incluye la respuesta, consulte Objetos de respuesta.
Para obtener información sobre el uso permitido y la visualización de los resultados, consulte Requisitos de uso y visualización.
Punto de conexión
Para solicitar los resultados de negocios locales, envíe una solicitud GET a:
https://api.cognitive.microsoft.com/bing/v7.0/localbusinesses/search
La solicitud debe usar el protocolo HTTPS.
Nota
La longitud máxima de la URL es de 2.048 caracteres. Para asegurarse de que la longitud de la dirección URL no supera el límite, la longitud máxima de los parámetros de consulta debe ser inferior a 1500 caracteres. Si la dirección URL supera los 2048 caracteres, el servidor devuelve 404 No encontrado.
encabezados
A continuación se indican los encabezados que una solicitud y una respuesta pueden incluir.
Encabezado | Descripción |
---|---|
Accept | Encabezado de solicitud opcional. El tipo de soporte predeterminado es application/json. Para especificar que la respuesta use JSON-LD, establezca el encabezado Accept como application/ld + json. |
Accept-Language | Encabezado de solicitud opcional. Lista delimitada por comas de los idiomas que se usarán en las cadenas de la interfaz de usuario. La lista se muestra en orden de preferencia decreciente. Para más información, incluido el formato esperado, consulte RFC2616. Este encabezado y el parámetro de consulta setLang son mutuamente excluyentes, no especifique los dos. Si establece este encabezado, debe especificar también el parámetro de consulta cc. Para determinar el mercado para el que hay que devolver resultados, Bing usa el primer idioma compatible que encuentra en la lista y lo combina con el valor del parámetro cc . Si la lista no incluye ningún idioma compatible, Bing busca el idioma y el mercado más cercanos que admiten la solicitud, o bien usa un mercado agregado o predeterminado para los resultados. Para determinar el mercado que usó Bing, consulte el encabezado BingAPIs-Market.Use este encabezado y el parámetro de consulta cc solo si especifica varios idiomas. En caso contrario, use los parámetros de consulta mkt y setLang.Una cadena de interfaz de usuario es aquella que se usa como etiqueta en una interfaz de usuario. Hay pocas cadenas de interfaz de usuario en los objetos de respuesta JSON. Todos los vínculos a las propiedades de Bing.com en los objetos de respuesta aplican el idioma especificado. |
BingAPIs-Market | Encabezado de respuesta. Mercado que usa la solicitud. El formato es <códigoIdioma>-<códigoPaís>. Por ejemplo, en-US. |
BingAPIs-TraceId | Encabezado de respuesta. Identificador de la entrada de registro que contiene los detalles de la solicitud. Si se produce un error, capture este identificador. Si no puede determinar y resolver el problema, incluya este identificador junto con el resto de información que proporcione al equipo de soporte técnico. |
Ocp-Apim-Subscription-Key | Encabezado de solicitud obligatorio. Clave de suscripción que recibió al suscribirse a este servicio en servicios de Azure AI. |
Pragma | Encabezado de solicitud opcional De forma predeterminada, Bing devuelve contenido almacenado en caché, si está disponible. Para que Bing no devuelva contenido almacenado en caché, establezca el encabezado Pragma en no-cache (por ejemplo, Pragma: no-cache). |
User-Agent | Encabezado de solicitud opcional. El agente de usuario que origina la solicitud. Bing usa el agente de usuario para proporcionar a los usuarios de dispositivos móviles una experiencia optimizada. Aunque es opcional, se recomienda especificar siempre este encabezado. El agente de usuario debe ser la misma cadena que envían los exploradores que más se usan. Para obtener información acerca de los agentes de usuario, consulte RFC 2616. A continuación encontrará varios ejemplos de cadenas user-agent.
|
X-MSEdge-ClientID | Encabezado de solicitud y respuesta opcional. Bing usa este encabezado para proporcionar a los usuarios un comportamiento coherente en las llamadas API de Bing. Bing incorpora a menudo mejoras y características piloto nuevas, y usa el identificador de cliente como clave para asignar el tráfico en distintos paquetes piloto. Si no usa el mismo identificador de cliente para un usuario en varias solicitudes, Bing puede asignar el usuario a varios paquetes piloto en conflicto. La asignación a varios paquetes piloto en conflicto puede generar una experiencia de usuario incoherente. Por ejemplo, si la segunda solicitud tiene una asignación de paquete piloto distinta de la primera, puede que se produzca una experiencia inesperada. Además, Bing puede usar el identificador de cliente para personalizar los resultados web en el historial de búsqueda del identificador de cliente, lo que proporciona una experiencia enriquecida para el usuario. Bing también utiliza este encabezado para ayudar a mejorar las clasificaciones de resultados mediante el análisis de la actividad que genera un identificador de cliente. Las mejoras de relevancia ayudan con una mayor calidad de los resultados que devuelven las API de Bing y, a su vez, permiten un mayor porcentaje de clics para el consumidor de la API. IMPORTANTE: Aunque es opcional, considere este encabezado como obligatorio. Conservar el identificador de cliente en varias solicitudes para la misma combinación de usuario final y dispositivo permite 1) que el consumidor de API reciba una experiencia de usuario coherente y 2) un mayor porcentaje de clics a través de una mejor calidad de los resultados de las API de Bing. Estas son las reglas de uso básico que se aplican a este encabezado.
NOTA: Las respuestas de Bing pueden incluir este encabezado o no incluirlo. Si la respuesta incluye este encabezado, capture el identificador de cliente y úselo para todas las solicitudes posteriores de Bing del usuario en dicho dispositivo. NOTA: Si incluye X-MSEdge-ClientID, no debe incluir cookies en la solicitud. |
X-MSEdge-ClientIP | Encabezado de solicitud opcional. Dirección IPv4 o IPv6 del dispositivo cliente. La dirección IP se usa para detectar la ubicación del usuario. Bing usa la información de ubicación para determinar el comportamiento de la búsqueda segura. NOTA: Aunque es opcional, se recomienda especificar siempre tanto este encabezado como el encabezado X-Search-Location. No ofusque la dirección (por ejemplo, cambiando el último octeto a 0). Al ofuscar los resultados de dirección, la ubicación no se encuentra cerca de la ubicación real, lo que puede provocar que Bing devuelva resultados erróneos. |
X-Search-Location | Encabezado de solicitud opcional. Una lista delimitada por punto y coma de pares clave-valor que describen la ubicación geográfica del cliente. Bing usa la información de ubicación para determinar el comportamiento de la búsqueda segura y devolver contenido local apropiado. Especifique el par clave-valor como <clave>:<valor>. A continuación se incluyen las claves que usan para especificar la ubicación del usuario.
NOTA: Es aconsejable especificar siempre la ubicación geográfica del usuario. Proporcionar la ubicación es especialmente importante si la dirección IP del cliente no refleja con precisión la ubicación física del usuario (por ejemplo, si el cliente utiliza VPN). Para obtener resultados óptimos, debería incluir tanto este encabezado como X-MSEdge-ClientIP pero, como mínimo, debe incluir este. |
Nota
Recuerde que los términos de uso exigen el cumplimiento de todas las leyes aplicables, incluido el uso de estos encabezados. Por ejemplo, en determinados lugares, como Europa, existen requisitos para obtener el consentimiento del usuario antes de colocar determinados dispositivos de seguimiento en los dispositivos de usuario.
Parámetros de consulta
La solicitud puede incluir los siguientes parámetros de consulta. Consulte la columna Obligatorio para saber cuáles son los parámetros obligatorios. Debe codificar como dirección URL los parámetros de la consulta.
Nombre | Valor | Tipo | Obligatorio |
---|---|---|---|
count | El número de resultados para devolver, empezando por el índice especificado por el parámetro offset . |
String | No |
localCategories | Lista de las opciones que definen la búsqueda por categoría de empresa. Consulte la Búsqueda de categorías de empresas locales | String | No |
mkt | Mercado de dónde proceden los resultados. Para obtener una lista de los valores de mercado posibles, consulte Códigos de mercado. NOTA: Local Business Search API solo admite actualmente el mercado estadounidense y el idioma inglés. |
String | Sí |
offset | El índice de inicio de resultados especificados por el parámetro count . |
Entero | No |
q | Término de búsqueda del usuario. | String | No |
responseFormat | Tipo de medio que se usará para la respuesta. A continuación se indican los valores posibles que no distinguen entre mayúsculas y minúsculas.
El valor predeterminado es JSON. Para obtener información acerca de los objetos JSON que contiene la respuesta, consulte Objetos de respuesta. Si especifica JsonLd, el cuerpo de respuesta incluye objetos JSON-LD que contienen los resultados de la búsqueda. Para obtener información acerca de JSON-LD, consulte JSON-LD. |
String | No |
safeSearch | Filtro que se usa para filtrar el contenido para adultos. Estos son los posibles valores posibles de filtro (no distingue entre mayúsculas y minúsculas).
El valor predeterminado es Moderado. NOTA: Si la solicitud proviene de un mercado para el que la directiva para adultos de Bing requiere que safeSearch se defina como Estricto, Bing ignora el valor safeSearch y usa Estricto.NOTA: Si usa el operador de consulta site: , existe la posibilidad de que la respuesta contenga contenido para adultos, independientemente del valor asignado al parámetro de consulta safeSearch . Use site: solo si es consciente del contenido del sitio y el escenario admite la posibilidad de contenido para adultos. |
String | No |
setLang | Idioma que se usará para las cadenas de la interfaz de usuario. Especifique el idioma con el código ISO 639-1 de 2 letras. Por ejemplo, el código de idioma de inglés es EN. El valor predeterminado es EN (inglés). Aunque sea opcional, siempre debe especificar el idioma. Normalmente, se establece setLang como el mismo idioma especificado por mkt , salvo que el usuario quiera que las cadenas de la interfaz de usuario se muestren en otro idioma.Este parámetro y el encabezado Accept-Language son mutuamente excluyentes: no especifique los dos. Una cadena de interfaz de usuario es aquella que se usa como etiqueta en una interfaz de usuario. Hay pocas cadenas de interfaz de usuario en los objetos de respuesta JSON. Además, los vínculos a las propiedades de Bing.com de los objetos de respuesta aplican el idioma especificado. |
String | No |
Objetos de respuesta
Los siguientes son los objetos de respuesta JSON que la respuesta puede incluir. Si la solicitud tiene éxito, el objeto de nivel superior en la respuesta es el objeto SearchResponse. Si se produce un error en la solicitud, el objeto de nivel superior es el objeto ErrorResponse.
Object | Descripción |
---|---|
Place | Define la información acerca de un negocio local como un restaurante o un hotel. |
Error
Define el error que se produjo.
Elemento | Descripción | Tipo |
---|---|---|
code | Código de error que identifica la categoría de error. Para obtener una lista de los códigos posibles, consulte Códigos de error. | String |
message | Descripción del error. | String |
moreDetails | Descripción que proporciona información adicional sobre el error. | String |
parameter | Parámetro de consulta de la solicitud que causó el error. | String |
subCode | Código de error que identifica el error. Por ejemplo, si code es InvalidRequest, subCode puede ser ParameterInvalid o ParameterInvalidValue. |
String |
value | Valor del parámetro de consulta que no era válido. | String |
ErrorResponse
Objeto de nivel superior que la respuesta incluye cuando se produce un error en la solicitud.
Nombre | Valor | Tipo |
---|---|---|
_type | Sugerencia de tipo. | String |
errors | Lista de errores que describen los motivos que causaron un error en la solicitud. | Error[] |
Licencia
Define la licencia bajo la que se pueden usar el texto o la foto.
Nombre | Valor | Tipo |
---|---|---|
name | Nombre de la licencia. | String |
url | La dirección URL a un sitio web en el que el usuario puede obtener más información acerca de la licencia. Utilice el nombre y la dirección URL para crear un hipervínculo. |
String |
Vínculo
Define los componentes de un hipervínculo.
Nombre | Valor | Tipo |
---|---|---|
_type | Sugerencia de tipo. | String |
text | Texto que se muestra. | String |
url | Una dirección URL. Use la dirección URL y el texto que se muestra para crear un hipervínculo. | String |
Organización
Define un anunciante.
Tenga en cuenta que un anunciante puede proporcionar su nombre, su sitio web o ambos.
Nombre | Valor | Tipo |
---|---|---|
name | Nombre del publicador. | String |
url | La dirección URL al sitio web del anunciante. Tenga en cuenta que es posible que el publicador no publique un sitio web. |
String |
Lugar
Define la información acerca de un negocio local como un restaurante o un hotel.
Nombre | Valor | Tipo |
---|---|---|
_type | Sugerencia de tipo, que puede establecerse en uno de los siguientes:
|
String |
address | La dirección postal del lugar en el que se encuentra la entidad. | PostalAddress |
entityPresentationInfo | Información adicional acerca de la entidad, como sugerencias que puede usar para determinar el tipo de entidad. Por ejemplo, si es un restaurante o un hotel. El campo entityScenario se establece en ListItem. |
EntityPresentationInfo |
name | El nombre de la entidad. | String |
telephone | El número de teléfono de la entidad. | String |
url | La dirección URL del sitio web de la entidad. Use esta dirección URL junto con el nombre de la entidad para crear un hipervínculo en el que hacer clic lleva al usuario al sitio web de la entidad. |
String |
webSearchUrl | La dirección URL del resultado de búsqueda de Bing para este sitio. | String |
QueryContext
Define el contexto de la consulta que Bing ha usado para la solicitud.
Elemento | Descripción | Tipo |
---|---|---|
adultIntent | Un valor booleano que indica si la consulta especificada está prevista para adultos. El valor es true si la consulta está prevista para adultos; de lo contrario, es false. | Boolean |
alterationOverrideQuery | La cadena de consulta que se usa para forzar a Bing a usar la cadena original. Por ejemplo, si la cadena de consulta es navegar a sotavento, la cadena de consulta de invalidación será + navegar a sotavento. No olvide codificar la cadena de consulta que da lugar a %2Bnavegar+a sotavento. Este campo solo se incluye si la cadena de consulta original contiene un error de ortografía. |
String |
alteredQuery | La cadena de consulta que utiliza Bing para realizar la consulta. Bing usa la cadena modificada si la cadena de consulta original contenía errores de ortografía. Por ejemplo, si la cadena de consulta es saling downwind , la cadena de consulta modificada será sailing downwind .Este campo solo se incluye si la cadena de consulta original contiene un error de ortografía. |
String |
askUserForLocation | Un valor booleano que indica si Bing requiere la ubicación del usuario para proporcionar resultados precisos. Si ha especificado la ubicación del usuario mediante los encabezados X-MSEdge-ClientIP y X-Search-Location, puede omitir este campo. En consultas relacionadas con la ubicación, como "clima de hoy" o "restaurantes cerca de mí", que necesitan la ubicación del usuario para proporcionar resultados precisos, este campo se establece en true. En consultas relacionadas con la ubicación que incluyan la ubicación (por ejemplo, "clima en Seattle"), este campo se establece en false. Este campo también se establece en false en las consultas no relacionadas con la ubicación, como los "más vendidos". |
Boolean |
originalQuery | La cadena de consulta como se especifica en la solicitud. | String |
Identifiable
Nombre | Valor | Tipo |
---|---|---|
id | Identificador de recursos. | String |
RankingGroup
Define un grupo de resultados de la búsqueda grupo, como línea principal.
Nombre | Valor | Tipo |
---|---|---|
items | Una lista de resultados de la búsqueda que se muestran en el grupo. | RankingItem |
RankingItem
Define un elemento del resultado de la búsqueda que se muestra.
Nombre | Valor | Tipo |
---|---|---|
resultIndex | Índice basado en cero del elemento en la respuesta que se muestra. Si el elemento no incluye este campo, muestre todos los elementos en la respuesta. Por ejemplo, muestre todos los artículos de noticias en la respuesta de News. | Entero |
answerType | La respuesta que contiene el elemento que se muestra. Por ejemplo, News. Use el tipo para encontrar la respuesta en el objeto SearchResponse. El tipo es el nombre de un campo de SearchResponse. Sin embargo, ese el tipo de respuesta solo si el objeto incluye el campo de valor; de lo contario, omítalo. |
String |
textualIndex | El índice de la respuesta en textualAnswers que se muestra. | Entero sin signo |
value | El identificador que identifica una respuesta que se muestra o un elemento de una respuesta que se muestra. Si el identificador identifica una respuesta, muestre todos los elementos de la respuesta. | Identifiable |
RankingResponse
Define que lugar de la página de resultados de la búsqueda debe colocarse el contenido y en qué orden.
SearchResponse
Define el objeto de nivel superior que la respuesta incluye cuando la solicitud es correcta.
Tenga en cuenta que si el servicio sospecha de un ataque de denegación de servicio, la solicitud se realizará correctamente (código de estado HTTP 200 OK); sin embargo, el cuerpo de la respuesta estará vacío.
Nombre | Valor | Tipo |
---|---|---|
_type | Sugerencia de tipo, que se establece en SearchResponse. | String |
places | Una lista de entidades que son pertinentes a la consulta de búsqueda. | Objeto JSON |
queryContext | Un objeto que contiene la cadena de consulta que utiliza Bing para la solicitud. Este objeto contiene la cadena de consulta especificada por el usuario. También puede contener una cadena de consulta modificada que Bing ha usado para la consulta si la cadena contenía un error de ortografía. |
QueryContext |
Códigos de error
A continuación se indican los códigos de estado HTTP posibles que devuelve una solicitud.
Código de estado | Descripción |
---|---|
200 | Correcto. |
400 | Uno de los parámetros de consulta falta o no es válido. |
401 | Falta la clave de suscripción o no es válida. |
403 | El usuario está autenticado (por ejemplo, usó una clave de suscripción válida), pero no tiene permiso para el recurso solicitado. Bing también puede devolver este estado si el autor de la llamada supera la cuota de consultas por mes. |
410 | La solicitud usó HTTP en lugar del protocolo HTTPS. HTTPS es el único protocolo admitido. |
429 | El autor de la llamada superó la cuota de consultas por segundo. |
500 | Evento de servidor inesperado. |
Si se produce un error en la solicitud, la respuesta contiene un objeto ErrorResponse, que contiene una lista de objetos Error que describen la causa del error. Si el error está relacionado con un parámetro, el campo parameter
identifica el parámetro del problema. Si el error está relacionado con un valor de parámetro, el campo value
identifica el valor que no es 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."
}
]
}
A continuación se indican los valores de código de error y subcódigo de error posibles.
Código | Subcódigo | Descripción |
---|---|---|
ServerError | UnexpectedError ResourceError NotImplemented |
El código de estado de HTTP es 500. |
InvalidRequest | ParameterMissing ParameterInvalidValue HttpNotAllowed Bloqueado |
Bing devuelve InvalidRequest siempre que alguna parte de la solicitud no es válida. Por ejemplo, falta un parámetro necesario o un valor de parámetro no es válido. Si el error es ParameterMissing o ParameterInvalidValue, el código de estado HTTP es 400. Si usa el protocolo HTTP en lugar de HTTPS, Bing devuelve HttpNotAllowed y el código de estado HTTP es 410. |
RateLimitExceeded | No hay subcódigos | Bing devuelve RateLimitExceeded cada vez que se supera la cuota de consultas por segundo (QPS) o de consultas por mes (QPM). Si se supera la cuota QPS, Bing devuelve el código de estado HTTP 429, mientras que si se supera la cuota QPM, devuelve 403. |
InvalidAuthorization | AuthorizationMissing AuthorizationRedundancy |
Bing devuelve InvalidAuthorization cuando no puede autenticar el autor de la llamada. Por ejemplo, falta el encabezado Ocp-Apim-Subscription-Key o la clave de suscripción no es válida.Se produce redundancia si especifica más de un método de autenticación. Si el error es InvalidAuthorization, el código de estado HTTP es 401. |
InsufficientAuthorization | AuthorizationDisabled AuthorizationExpired |
Bing devuelve InsufficientAuthorization cuando el autor de la llamada no tiene permisos para acceder al recurso. Esto puede ocurrir si la clave de suscripción se ha deshabilitado o ha expirado. Si el error es InsufficientAuthorization, el código de estado HTTP es 403. |