gpt4 book ai didi

c# - 带有 OAuthBase.cs 的 Yahoo Oauth API

转载 作者:行者123 更新时间:2023-12-02 22:20:15 25 4
gpt4 key购买 nike

我目前正在使用 oauth.net 上可用的 OAuthBase.cs 帮助器类来实现 OAuth 以与 Yahoo!幻想API。我目前停留在第 5 步(使用访问 token /访问密码调用 API 服务)。

我成功完成了Step 4但似乎无法创建实际的服务调用。 The documentation是有限的;我应该使用什么参数?我收到 401 或 400 http 错误。我通过以下方式生成我的签名:

url = new Uri("http://query.yahooapis.com/v1/public/yql?q=select * from fantasysports.teams.roster.stats where team_key='nba.l.52669.t.5' and week='5' and stats_type='week' and stats_week='5'&format=json");

signature = oauth.GenerateSignature(url, string.Empty, consumerKey, consumerSecret, accessToken, accessTokenSecret, "GET", time, string.Empty, nonce, OAuth.OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);

using (var y = WebRequest.Create(string.Format("{0}?{1}&oauth_signature={2}", normalizedUrl, normalizedRequestParameters, signature)).GetResponse())
{
....
}

url 是我尝试进行的 api 调用,consumerKey/consumerSecret 是我注册时给我的 key 对于 Yahoo!,accessToken/accessTokenSecret 是从第 4 步中的 request_auth 返回的响应。我做错了什么?

提前致谢

编辑:12/14 - 对于那些不熟悉 OAuthBase 的人来说,它本质上是一个生成签名的库1. 合并所有url/参数(consumerkey、token、tokenSecret、httpMethod、nonce、time等),排序,归一化url/参数;2.将consumerSecret'&'tokenSecret编码为HMACSHA1 key ;3.计算hmacsha1 key 的哈希值

最佳答案

这是一些使用 OAuth 访问 Yahoo API 的工作代码(在本例中为 BOSS Geo API)

    [Test]
public void MakeCallToBossGeoApi()
{
string result;
var uri = new Uri(@"http://yboss.yahooapis.com/geo/placefinder?country=SE&flags=J&locale=sv_SE&postal=41311");
var o = new OAuthBase();
string nonce = o.GenerateNonce();
var timestamp = o.GenerateTimeStamp();

string normalizedUrl;
string normalizedParameters;
string signature = HttpUtility.UrlEncode(
o.GenerateSignature(uri,
"yourconsumerkeyhere",
"yourconsumersecrethere", null, null, "GET",
timestamp, nonce, out normalizedUrl,
out normalizedParameters));

uri = new Uri(normalizedUrl +"?"+ normalizedParameters + "&oauth_signature=" + signature );

using (var httpClient = new WebClient())
{
result = httpClient.DownloadString(uri.AbsoluteUri);
}

Console.WriteLine(result);
}

关于c# - 带有 OAuthBase.cs 的 Yahoo Oauth API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com