UWP 游戏 returns 中的 Xbox Live 排行榜出现错误 404

Xbox Live leaderboard in UWP game returns with error 404

尝试从 Xbox Live 检索排行榜时,统计事件类型 get_leaderboard_complete returns 错误代码 404。我在 Creators Program 的 UWP 游戏中使用 Xbox Live。

我能够为用户设置和检索统计信息。这部分工作没有问题:

xbox_live_result<stat_value> serverStat = m_statsManager->get_stat(m_user, L"score");
auto result = serverStat.payload();
if (result.as_integer() < score) {
    setStatForUser(m_user, L"score", score);
}

我的代码采用了Xbox Live Samples中排行榜的例子。因此,为了检索我的排行榜,我正在调用 getLeaderboard(m_user, L"score"); 并且我正在调用 statsManager->do_work();.

的每一帧
// Process events from the stats manager
// This should be called each frame update

auto statsEvents = m_statsManager->do_work();
std::wstring text;

for (const auto& evt : statsEvents)
{
    switch (evt.event_type())
    {
    case stat_event_type::local_user_added:
        text = L"local_user_added";
        break;

    case stat_event_type::local_user_removed:
        text = L"local_user_removed";
        break;

    case stat_event_type::stat_update_complete:
        text = L"stat_update_complete";
        break;

    case stat_event_type::get_leaderboard_complete:
        text = L"get_leaderboard_complete";
        auto getLeaderboardCompleteArgs = std::dynamic_pointer_cast<leaderboard_result_event_args>(evt.event_args());
        processLeaderboards(evt.local_user(), getLeaderboardCompleteArgs->result());
        break;
    }

    stringstream_t source;
    source << _T("StatsManager event: ");
    source << text;
    source << _T(".");
    log("%S", source.str().c_str());
}

因为我能够毫无问题地设置和检索统计信息,我想知道这是否是 Xbox Live 后端的问题?不过我对xbox live 2017数据平台不是很熟悉,可能是我调用的有误

我发现了一个解决方案:

  1. 在开发中心新建 stat/leaderboard。
  2. 按“测试”按钮。这很重要,因为它发布了服务配置。

我不确定为什么原来的统计数据不起作用。可能是因为我用了“score”这个词作为statID。