Как получить доступ к Clockify API через Power Query - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь получить свои записи времени из Clockify API напрямую через Power Query в Excel. Я использую следующий код в Power Query:

= Web.Contents("https://api.clockify.me/api/workspaces/ID of my workspace/timeEntries/", [
 Query=[ #"filter"="", #"orderBy"=""],
 ApiKeyName="APIToken"
])

Когда я пытаюсь запустить код, мне предлагается ввести аутентификацию Web API, которая выдает ошибку («Английский перевод: аутентификация не работает. Попробуйте еще раз») после ввода правильного кода Web API смотрите скриншот здесь

У кого-нибудь есть идеи, как это решить?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

При обращении к API на основе REST в Power Query / M необходимо учитывать две вещи:

  1. При использовании функции Web.Contents() лучше всего передавать ключ API в качестве параметра в самом заголовке запроса. В вашем случае X-Api-Key должно равняться {your API key}.

  2. Используйте анонимный доступ для подключения к API. На снимке экрана показано, что вы пытаетесь подключиться с помощью "Web API". Очистите значение в поле «Schlüssel» и используйте вместо него «Anonym».

Вот простой пример, в котором я возвращаю информацию о рабочем пространстве по идентификатору рабочего пространства. (Я замаскировал свой идентификатор рабочей области и ключ API; замените эти значения своим идентификатором рабочей области и ключом API.)

Это работает для меня как в Excel, так и в Power BI:

let
    Source = 
        Web.Contents(
            "https://api.clockify.me/api/workspaces/{your workspace ID}", 
            [
                Headers=[
                    #"Content-Type"="application/json", 
                    #"X-Api-Key"={your API key}
                ]
            ]
        ),
    jsonResponse = Json.Document(Source)
in
    jsonResponse
0 голосов
/ 07 ноября 2018

Разве это не должен быть ключ X-Api вместо ApiKeyName?

...