我使用Trello的Developer API实施OAuth将内容发布到列表中。
我已成功提出请求,并从https://trello.com/1/OAuthGetRequestToken
返回oauth_token
和oauth_token_secret
但是,当我拨打https://trello.com/1/OAuthAuthorizeToken,通过我刚刚收到的oauth_token
时,我收到了“未找到应用”的回复。
有人可以帮忙吗?
编辑:以下是我https://trello.com/1/OAuthGetRequestToken
的回复oauth_token=8d0e43fd0cc67726567d49ae5e818852&oauth_token_secret=[secret]
这是我发送的授权标题(在C#中转义)
"OAuth oauth_version=\"1.0\", oauth_signature_method=\"HMAC-SHA1\", oauth_nonce=\"8335006\", oauth_timestamp=\"1414663625\", oauth_consumer_key=\"9612eaca23c7bdd3eca60dc8c2a8159c\", oauth_signature=\"M6sLyyfHGYXOtQnLJexDx96kbFo=\", oauth_token=\"8d0e43fd0cc67726567d49ae5e818852\""
我做错了什么,或者这是Trello结束时的错误?
编辑:我正在使用RestSharp来调用Trello API,如下所示:
var client = new RestSharp.RestClient("https://trello.com/");
var request = new RestSharp.RestRequest("1/OAuthAuthorizeToken", Method.GET);
编辑:以下是完整的RestSharp代码:
var client = new RestSharp.RestClient("https://trello.com/");
var request = new RestSharp.RestRequest("1/OAuthAuthorizeToken", Method.GET);
Uri uri = new Uri(string.Format("{0}/{1}", client.BaseUrl, request.Resource));
string authHeader = GenerateAuthorizationHeader(uri);
//This is the output of GenerateAuthorizationHeader()
//string authHeader = "OAuth oauth_version=\"1.0\", oauth_signature_method=\"HMAC-SHA1\", oauth_nonce=\"8335006\", oauth_timestamp=\"1414663625\", oauth_consumer_key=\"9612eaca23c7bdd3eca60dc8c2a8159c\", oauth_signature=\"M6sLyyfHGYXOtQnLJexDx96kbFo=\", oauth_token=\"8d0e43fd0cc67726567d49ae5e818852\"";
request.AddHeader("Authorization", authHeader);
GenerateAuthorizationHeader方法使用OAuth.OAuthBase
为OAuth请求生成TimeStamp和Signature。
答案 0 :(得分:0)
看起来这可能是一个trello问题...... 这个用户,被事物的声音弄错了键。 你是否100%确定钥匙是否正确。 Getting "App not found" from Trello Authentication
答案 1 :(得分:0)
我遇到了同样的问题,这里的问题是OAuth是版本1.0 当您从第一次通话中获得令牌和令牌密钥时,您必须让您的用户访问https://trello.com/1/OAuthAuthorizeToken而不是您。
在您的情况下,您必须将用户重定向到https://trello.com/1/OAuthAuthorizeToken?oauth_token=8d0e43fd0cc67726567d49ae5e818852&scope=read,write,account
他将获得一个他可以允许访问的页面。然后,您将在授权后在页面中获得验证码以继续您的流程(GetAccessToken)。
您可以尝试将其作为测试,在实际应用程序中,您必须在OAuthAuthorizeToken调用中指定回调网址和应用程序名称。