0

我正在尝试通过 Power Query 直接从 Clockify API 获取我的时间条目到 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 代码后会出现错误(“英文翻译:身份验证不起作用。再试一次”),请参见此处的屏幕截图

有谁知道如何解决这个问题?

4

2 回答 2

1

在 Power Query/M 中调用基于 REST 的 API 时要记住两点:

  1. 使用该Web.Contents()函数时,最好将您的 API 密钥作为参数传递给请求标头本身。在你的情况下X-Api-Key应该等于{your API key}

  2. 使用匿名访问连接到 API。您的屏幕截图表明您正在尝试使用“Web API”进行连接。清除“Schlüssel”字段中的值并改用“Anonym”。

这是一个简单的示例,我通过工作空间 ID 返回有关工作空间的信息。(我已经屏蔽了我的工作区 ID 和 API 密钥;将这些值替换为您的工作区 ID 和 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
于 2018-11-13T12:48:00.940 回答
0

它不是必须是 X-Api-Key 而不是 ApiKeyName 吗?

于 2018-11-07T16:38:26.350 回答