问题标签 [battlenet-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - requests.post 和这个直卷曲有什么区别?
将 python 3.6.2 与requests
库一起使用。
我正在尝试在 Battle.net API 上使用 oauth2 进行身份验证,并且在第二个请求(用于令牌检索的请求)中,我收到一个 400 错误,没有任何有用的解释(“内部服务器错误”)。战网论坛上有人建议尝试对 a 做同样POST
的事情curl
,并且有效。(这是我的论坛帖子:https ://us.battle.net/forums/en/bnet/topic/20762236765 )
我多次检查两者之间的一些愚蠢差异(可能是错字),但没有(我还通过复制粘贴从 curl 写回请求,获得相同的错误)。因此,我认为两者之间的行为应该存在一些实际差异。
这是python代码:
这是卷曲:
正如我所说,我想应该有一些不同的东西,但我不是 http 专家。标题中可能有什么?如何将请求设置为具有相同的行为?
php - 如何在战网 oauth 上获取用户资料
我想在我的网站上使用暴雪 ID 登录。我认为我的代码是有效的。用户配置文件请求失败。我不明白暴雪的用户资料数据结构。您能帮我获取用户的 ID、电子邮件和战斗标签吗?
这是我的代码
我认为这段代码无法读取用户 ID
在这部分。
它不是纯粹的 HybridAuth。
node.js - Battle.net API 使用 OAuth Token 返回 401 错误
我在 Battle.net API 上使用带有 express 的 Nodejs 来生成 Oauth 令牌。 https://develop.battle.net/documentation/guides/using-oauth
生成令牌本身是有效的,因为它返回了我的令牌。但是当我使用代码向他们的 API 发出请求时,例如:
我得到一个 401 Unauthorized 错误响应,调试日志:
我正在尝试通过 fetch() 获取公会的成员。
我已经尝试过:
创建一个新的应用程序(使用新的客户端密码和 ID)
在战网设置中设置所有可能的回调 url:
https://localhost/ http://localhost/ https://localhost:443/ http://localhost:443/ https://localhost/auth/bnet/callback http://localhost/auth/bnet/callback https://localhost:443/auth/bnet/callback http://localhost:443/auth/bnet/callback
通过“试用 api”(https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api)手动创建令牌,在其中输入您的客户端 ID 和机密,然后获得临时令牌。那个有效,也在我的应用程序中。
您可以比较这两个网址的响应(只需使用您的浏览器):
第二(生成在battle.net网站上尝试API,您可以在其中填写clientid和secret来测试API):https://eu.api.blizzard.com/wow/guild/Blackmoore/The%20new%20Dimension? fields=members&locale=de_DE&access_token=US23su4g0hAeS5w3EUCkKA9MJPgJ8k8bzV
代码
server.js,简单的快递应用
控制器.js
我实际上希望得到这样的响应,因为它使用临时令牌工作:
我设法解决了这个问题!
非常非常hacky,但我设法通过像这样破解oauth回调中间件来解决这个问题:将我使用的API令牌设置为req.user.token。
我怀疑我的 SessionStorage(快速会话)中也使用了“代码”或“令牌”来将当前会话存储在我的数据库中。所以我只是从请求中破解 user.token 并使用它。呼……工作时间。
angular - 将战网(和其他游戏平台)帐户链接到具有独立环境的应用程序
实际上,我有一个前端(Angular 7)和后端(Symfony 4.2)环境分离的网络应用程序。用户与 Google OAuth2 连接。我想允许用户将他们的游戏平台帐户(如 Battle.net、Steam、XBOX...)链接到他们的网络应用程序帐户(如 Discord Connections)。为此,我使用了授权代码流(https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow)。我不明白实现这一点的工作流程,我应该将用户从前端直接重定向到 Auth 页面并重定向到 API 吗?但是如果我这样做,我怎样才能从前端部分检索访问令牌?
实际上,用户单击前端应用程序中的按钮,它会将他重定向到构建 oauth URL 的后端路由(使用 client_id、redirect_uri 等参数),然后重定向到授权页面。
战网平台用户认证后,通过代码将用户重定向到后端回调,但我不知道该怎么办,如何重定向或更新前端?
前端 :
后端:
控制器 :
服务 :
我想在登录后在链接平台上获取用户信息(如用户名,如果他实际上在这个平台上登录......),然后从平台 API 中检索 access_token 以允许对他们的请求。
javascript - 通过战网授权
我尝试通过 Battle.net 在我的网站上创建身份验证。这是我第一次使用 OAuth。有文档https://develop.battle.net/documentation/api-reference/oauth-api
现在我可以获取代码并希望通过代码获取访问令牌。我提供凭据。使用 Koa.js。
重定向工作,我得到了code
. 但是我应该如何使用 got 构建查询code
?但我得到了错误
reactjs - 使用暴雪/战网的 OAuth 登录
我正在尝试创建一个反应应用程序,但我不知道暴雪 Oauth 是如何工作的?我已经花了将近 5 个小时阅读文档,还没有弄清楚任何事情。到目前为止,我唯一得到的是“代码”。
这是文档的链接。
它把我带到暴雪登录页面,一旦我登录,它就会将我重定向回http://localhost:3000/games/
它旁边的代码,我该如何进一步移动?
oauth-2.0 - [Web API]AspNet.Security.OAuth.BattleNet OAuth 2.0 问题
基本上我的使用战网按钮登录在这里发送请求:
突然间我收到了这个错误
CORS 错误:
跨域请求被阻止:同源策略不允许在https://eu.battle.net/oauth/authorize?client_id= *&scope=d3.profile%20openid&response_type=code&redirect_uri=https%3A%2F%2Flocalhost读取远程资源%3A44333%2Fapi%2Fuser%2Fexternallogincallback&state=CfDJ8GNva7rF4-dPly4Z3xuUAIb6108sCNggQc6reYXjMJrGmdWZbri-N715ueCZ2Ksw9Q47k8SX1xG-c3zDck-mXT8h8mvEY5_41ox7C9OsU-PStXqUsD6npNcMBhCr16Qh1valIQ6REKTMjLiilO5wbnx1349I2SwQfJevGwKZqC4o4PElfF6kPaPmRa5Eslquh4Sfwbn3HTKeaArxx2v8jD4. (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。
HTTP 请求:
如果我在另一个选项卡中打开此请求,我将获得身份验证并重定向到ExternalLoginCallback。
PS:我正在使用AspNet.Security.OAuth.BattleNet并且我没有使用ASP.NET Core Identity进行身份验证(使用自定义逻辑)。
reactjs - 获取 API 重定向无法按我的预期工作
你好,堆栈溢出者!我正在使用 Battle.net api 构建一个小应用程序。
我正在尝试使用带有 fetch API 的 Oauth 对 api 进行身份验证,但它似乎没有达到我想要的效果!
所以这是我的代码```
它应该将我重定向回这里 https://localhost:3000/?code="code"&state="state" 代码是实际的身份验证代码。
但是当我尝试调用该端点时,它不会将我重定向回来。从开发者控制台我可以看到它确实在这里调用https://eu.battle.net/oauth/authorize?client_id=clientid&scope=wow.profile&state=state&redirect_uri=https://localhost:3000/&response_type=code它给出状态 302。然后将我重定向到这个 url:
但不回到本地主机。但是,如果我将 authUrl 直接粘贴到浏览器中,它会按预期工作。
我在里面做错了什么反应?
对不起,如果我不清楚或令人困惑。如果我遗漏了任何重要的东西,请问我会提供!如果有人可以尝试帮助我,将不胜感激!提前致谢!
node.js - 护照-bnet InternalOAuthError:无法获取用户ID
我目前正在开发一个需要通过战网 oauth 流从用户登录获取访问令牌的应用程序。我正在使用来自 npm的 passport-bnet,但是在让它工作时遇到了一些问题(我使用的是 fastify 而不是 express)。我想找到错误,所以我从passport-bnet 存储库中克隆了示例。当然,我添加了所需的 env 值(id 和 secret),但身份验证总是失败
InternalOAuthError:无法获取用户 ID 错误(重定向到 /bnet/callback 总是等待几秒钟,然后返回错误)。
整个代码看起来像这样
我什至尝试添加一个自签名证书并在启用 https 的情况下运行 express。真的不知道我是否做错了什么,我还没有找到与此类似的问题已解决。感谢您的帮助,谢谢。
battlenet-api - 有没有办法获得一个生物的精英和稀有状态(魔兽世界经典)?
我正在开发一个插件,需要一份游戏中每个精英和稀有的列表。生物方法返回它的类型和名称,但我看不到它是否是精英的状态。任何人都知道是否可以通过 api 获取该信息?谢谢