Microsoft Health Cloud API忽略每日摘要的startTime参数

时间:2018-06-17 08:45:26

标签: c++ rest microsoft-band

我通过Cloud API访问Microsoft Health数据。按照要检索daily summaries的文档,我构造了一个带有startTime参数的GET请求。虽然我打算在一周的时间内检索数据,但API似乎忽略了startTime参数,并尽可能多地返回数据。

我使用以下代码构建符合ISO 8601的日期字符串,以及发出HTTP请求。 httpClient_的类型为HttpClient,其中包含实施OAuth身份验证的链式IHttpFilter

IAsyncOperation<hstring> get_summaries()
{
    using namespace std::chrono;
    constexpr auto day{ 24h };
    constexpr auto week{ 7 * day };

    auto const end_date{ clock::now() };
    auto const start_date{ end_date - week };
    auto const formatter{ DateTimeFormatter{ L"{year.full}-{month.integer(2)}-{day.integer(2)}T{hour.integer(2)}:{minute.integer(2)}:{second.integer(2)}Z" } };
    auto const start_date_string{ formatter.Format(start_date) };
    auto const query{ L"startTime=" + start_date_string };

    Uri const request{ L"https://api.microsofthealth.net/v1/me/Summaries/Daily?" + Uri::EscapeComponent(query) };
    auto const response{ co_await httpClient_.GetStringAsync(request) };

    co_return response;
}

在2018-06-17上运行此代码会生成以下请求URL:

https://api.microsofthealth.net/v1/me/Summaries/Daily?startTime%3D2018-06-10T10%3A18%3A20Z

我希望返回的JSON字符串能够容纳8个条目,2018-06-10到2018-06-17期间每天一个条目。这是我实际收到的(缩写)JSON字符串:

{
    "summaries": [
        {
            "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "startTime": "2018-06-17T02:00:00+02:00",
            "endTime": "2018-06-18T02:00:00+02:00",
            "parentDay": "2018-06-17T02:00:00+02:00",
            ...
        },
        {
            "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "startTime": "2018-06-16T02:00:00+02:00",
            "endTime": "2018-06-17T02:00:00+02:00",
            "parentDay": "2018-06-16T02:00:00+02:00",
            ...
        },

        ...

        {
            "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "startTime": "2018-05-18T02:00:00+02:00",
            "endTime": "2018-05-19T02:00:00+02:00",
            "parentDay": "2018-05-18T02:00:00+02:00",
            ...
        }
    ],
    "nextPage": "https://api.microsofthealth.net/v1/me/Summaries/Daily?startTime%3d2018-06-10T10%3a18%3a20Z&ct=636621984000000000",
    "itemCount": 31
}

我访问API的方式有问题吗?或者这是Cloud API中的一个错误,尚未列在Known Issues下?

0 个答案:

没有答案