Uptime Robot – Web API – «Solo se puede especificar una clave de API web cuando se proporciona un nombre de clave de API web»

Un usuario Pregunto ✅

BryanAdept4

Hola a todos,

Me gustaría usar Power BI para consultar nuestra cuenta de Uptime Robot para recopilar información

Todo parecía bastante fácil, pero tengo problemas similares a otras publicaciones en las que recibo una respuesta de error al aplicar la clave API.

PBI-API.PNG

En la página de la API de Uptime Robot (https://uptimerobot.com/api) da instrucciones que parecen muy simples.

Específicamente quiero usar el obtenerMonitores Comando para recopilar toda la información sobre todos los monitores (sitios web).

Obviamente, me estoy perdiendo algo, tal vez necesito pasar algo en la sección de encabezados HTTP en Avanzado, ¿alguien tiene información que pueda orientarme en la dirección correcta?

A continuación se muestran extractos de la página de la API de Uptime Robot que pueden ayudar, pero no he podido trabajar.

============================================

Uptime Robot tiene un muy fácil de usar API.

Las respuestas se proporcionan como XML, JSON o JSON-P.

Le permite obtener los detalles de sus monitores, registros, crear/editar/eliminar monitores, alertar a los contactos y ventanas de mantenimiento.

Eso es todo.

============================================

Autenticación

La autenticación de acceso básico HTTP se utiliza para verificar cuentas.

Hay 2 tipos de api_keys para llegar a los datos:

  • api_key específica de la cuenta que permite usar todos los métodos de la API en todos los monitores de una cuenta (Estoy usando esto)
  • api_keys específicas del monitor que permite usar solo el método getMonitors para el monitor dado

============================================

Formatos

Las respuestas pueden ser XML o JSON. Simplemente mencione el formato preferido como:

formato=xml o formato=json

Para obtener una respuesta JSON-P, las solicitudes deben enviarse con un parámetro llamado callback como callback=jsonpUptimeRobot y la respuesta se devolverá como:

jsonpUptimeRobot({…});

================================================== =====

Métodos

Los métodos se definen justo después de la URL de la API (por ejemplo: https://api.uptimerobot.com/v2/methodName). Y, aquí están:

CORREO obtenerMonitores

Este es un método tipo navaja suiza para obtener cualquier información en los monitores.

De forma predeterminada, enumera todos los monitores en la cuenta de un usuario, sus nombres descriptivos, tipos (http, palabra clave, puerto, etc.), estados (activo, inactivo, etc.) y índices de tiempo de actividad.

Hay parámetros opcionales que permiten que el método getMonitors genere información en cualquier monitor dado en lugar de en todos ellos.

Y también, existen parámetros para obtener los registros de notificación (alertas) para cada monitor e incluso qué contactos de alerta fueron alertados en cada notificación.

Parámetros:

  • Clave APIrequerido
  • monitoresOpcional (si no se usa, devolverá todos los monitores en una cuenta. De lo contrario, es posible definir cualquier número de monitores con sus ID como: monitores=15830-32696-83920)

elsolobob_2

Hola tios,

Solo estaba jugando tratando de hacer que esto funcionara hoy y con un montón de excavación encontré la solución.

Creé una consulta en blanco con el siguiente código y funcionó:

let
   body = Text.ToBinary("api_key=ENTER-API-KEY-HERE&format=json&logs=1"),
   actualUrl = "https://api.uptimerobot.com/v2/getMonitors",
   Options = [
   Headers=[#"Content-type"="application/x-www-form-urlencoded", #"cache-control"="no-cache"],
   Content=body
   ],
   result = Web.Contents(actualUrl, Options)
in
    result

Esto debería darle la base para cualquier consulta, simplemente ajuste ‘cuerpo’ para poner una carga útil diferente.

Crédito a estos hilos por llevarme allí

https://community.powerbi.com/t5/Desktop/How-to-add-body-into-Web-Contents/td-p/128996

https://social.technet.microsoft.com/Forums/en-US/df940ff3-46da-4340-9211-bf7593081d9f/webcontents-p…

mistermagoo

Hola @BryanAdept4, ¿resolviste este problema? yo tengo exactamente el mismo…

¡Gracias!
Adiós,

A.-

Hola @BryanAdept4,

Consulte los siguientes hilos similares sobre cómo generar una solicitud POST especificando la opción Contenido.

https://social.msdn.microsoft.com/Forums/en-US/029fed1d-56fe-476a-9d7d-f367c5036b6e/posting-xml-to-a…
https://community.powerbi.com/t5/Integrations-with-Files-and/M-Query-to-use-POST-method-on-a-Web-API…

Gracias,
Lidia Zhang

BryanAdept4

En respuesta a v-yuezhe-msft

Hola, he echado un vistazo a esos y no puedo desenredarlo desafortunadamente.

¿Alguna otra opción?

Me comuniqué con Uptime Robot para ver si ya tienen algo en juego.

En respuesta a BryanAdept4

Hola @BryanAdept4,

En primer lugar, deberá consultar el soporte de Uptime Robot sobre cómo invocar su API y luego conectarse desde Power BI Desktop.

Gracias,
Lidia Zhang

BryanAdept4

PBI POST.PNG

Emitir un comando diferente (getAccountDetails) va más allá y muestra que Power BI lo está emitiendo como un comando GET en lugar de un comando POST.

¿Cómo configuro los comandos como POST en lugar de GET?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *