我一直在寻找这个问题的答案,但我似乎无法找到答案。我已经尝试了几件事,所有这些我都会在这里列出,希望有人能指出我正确的方向。
首先,我使用 Hapi 框架构建了一个简单的 Node 应用程序。此外,我正在使用同样来自 Hapi 家伙的 Bell 库来通过 Yahoo 进行身份验证,并使用 hapi-auth-cookie 来设置我的会话与身份验证结果。据我所知,这工作得很好。
一旦用户通过身份验证,贝尔就会向我提供一个令牌和一个秘密。
令牌看起来像这样:
A=vvnxl1_FhCK6FPEFbIA.p_N8cSet7Ifmye.i3mWa6hrlh7fXecZhQvumjKSXPkRGfcj2BaFSmZCWPXeW67G8kqiS4G3Z7yBR
秘密看起来像这样:
9e17917hsjf863c220c35f3f3385b6e4cd586c84
因此,一旦我进行身份验证并被重定向到我的主页,我就有了这两个并设置了一个 cookie。我的理解是我准备好了。然后我尝试使用以下 URL 访问 Yahoo API:
https://fantasysports.yahooapis.com/fantasy/v2/leagues;league_keys=328.l.5668/standings?format=json
点击此 URL 的响应是:
{
"error":
{
"lang": "en-US",
"description": "Please provide valid credentials. OAuth oauth_problem=\"unable_to_determine_oauth_type\", realm=\"yahooapis.com\""
}
}
显然,我要访问的 URL 不完整。但是,我不确定所需的参数是什么。我去过雅虎文档 1000 次,但我似乎找不到这个具体的答案。那里的所有示例大多与身份验证位有关,我应该这样做。所以,希望我能走运,我开始尝试在 URL 中传递令牌和秘密。在这一个中,我尝试了 API URL + 令牌 + 秘密 + 签名。我使用的令牌和秘密是上面提到的贝尔提供的:
https://fantasysports.yahooapis.com/fantasy/v2/leagues;league_keys=328.l.5668/standings?format=json&&oauth_token=A=tqq2L3D54ATsQZbgHB95b0ZyCj_kgq01R69vTulZ6lP9evhzddrIaksmd6u21fNSPFQ8WtVBsWr9GFk1zQtsw_OP4pKKaDKs2TxHlqwAYp4ZyIkthzPcSnJQka.J2THeK8BHC8eeisT4EeQpMqcDgefX6Hbb1CsQ_bD00ECd3AE.uGdF_6sm&oauth_secret=b5d2359f191cc72cfd318b5cf&oauth_signature=524a4f6e1407acd00a98f53973180%26b5d2359f191cc4c7d7d7bfd318b5cf
现在,它告诉我令牌被拒绝:
{
"error": {
"lang": "en-US",
"description": "Please provide valid credentials. OAuth oauth_problem=\"token_rejected\", realm=\"yahooapis.com\""
}
}
我也尝试过没有签名,在这种情况下,错误告诉我签名丢失。
这里的任何帮助将不胜感激。从过去一周的搜索中,我发现 Yahoo API 并不是最容易使用的东西,但希望有人在这里有一些见解,因为我似乎很接近。我希望我包含了您需要的所有信息,谢谢!