【问题标题】:Bungie API for Destiny2 user: find membershipId or bungie display name by platform nicknameDestiny2 用户的 Bungie API:通过平台昵称查找 memberId 或 bungie 显示名称
【发布时间】:2021-11-24 20:48:36
【问题描述】:

我正在支持一个获取玩家游戏统计数据的应用。例如,我们有 playstation 或 xbox 昵称,需要找到 bungie memberId。

我看代码 - 我们误用了“Destiny2/SearchDestinyPlayer”API,因为它不需要 playstation 昵称(或 xbox 昵称),但需要完整的 bungie 名称,包括 #xxxx (# id) https://bungie-net.github.io/#Destiny2.SearchDestinyPlayer

好像之前在《命运2》中出现了交叉保存功能,昵称相同,#id 不是强制性的。

有人能推荐另一个接受平台(xbox 或 playstation)昵称的 API 吗? 也可能建议专门针对 bungie API 的论坛?

PS:我搜索了替代网站,例如在“https://destinytracker.com/”上,我可以选择平台“Playstation”并输入昵称“T-rex_on_point” - 它找到了 bungie 名称 Brontosaurus881#6169 以及网址内的membershipId。它是如何做到的?它使用什么 API? 我终于需要“membershipId” id,但如果我能找到完整的 bungie 显示名称 - 那么我可以使用上面提到的 Destiny2/SearchDestinyPlayer API 找到“membershipId”

【问题讨论】:

    标签: rest xbox playstation


    【解决方案1】:

    没有“其他 API”。所有应用程序都使用 Bungie 的一个 API。

    我假设您在 URL 中使用 # 而不是 UTF-8 URL encoded 发出请求。

    您需要专门对 URL 进行编码,将 # 编码为 %23。因此,与其使用此名称 Brontosaurus881#6169 发出请求,不如使用 Brontosaurus881%236169

    另外,您使用的是什么语言?如果是 Python,则使用 urllib.parse.quote("Brontosaurus881#6169")。 如果没有,那么我建议您查找如何使用x 语言对 URL 进行编码。

    另外,如果您使用的是 Python,API 周围有一个 wrapper,它已经为您做到了如果您有兴趣并使用 Python。

    【讨论】:

    • 非常感谢您的回答。我了解网址编码。我使用 C#,但也使用 helper (System.Web.HttpUtility.UrlEncode) 进行 url 编码。但问题本身是不知道#nr(此处为6169)。例如,我们只知道 xbox 昵称,即“Brontosaurus881”,但用户可以更改它,反之亦然更改 bungie 显示名称。例如我们已经知道 xbox nickame = "my_xbox_nick" 并且需要找出 bungie 昵称(例如它是 my_renamed_bungie_nick#1357,但我们没有它)我们现在的想法是我们在某个地方 GUI 应该要求用户输入 bungie 显示名字。
    • 我明白了。所以你要做的是插入name并返回name#1234?在这种情况下,您可能想使用 SearchByGlobalNamePrefix 端点,它基本上只通过显示名称搜索用户。
    猜你喜欢
    • 2019-07-19
    • 1970-01-01
    • 2010-10-08
    • 2020-10-15
    • 2013-10-15
    • 2021-07-30
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多