2014-10-27 50 views
3

我正在使用Trello的开发人员API的OAuth实现将内容发布到列表。Trello API OAuth找不到我的应用

我已经成功地做了一个请求,并得到了我的oauth_tokenoauth_token_secret回从https://trello.com/1/OAuthGetRequestToken

但是,当我打电话https://trello.com/1/OAuthAuthorizeToken,路过我刚刚收到oauth_token,我得到的回应“找不到应用程式” 。

任何人都可以帮忙吗?


编辑:这里就是我从https://trello.com/1/OAuthGetRequestToken

oauth_token=8d0e43fd0cc67726567d49ae5e818852&oauth_token_secret=[secret] 

取回而这里的Authorization头我送(逃脱在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请求生成时间戳和签名。

+0

您可以分享您使用哪种C#组件与Trello API进行通信。 – 2014-11-04 06:45:10

+0

@LouisLewis我刚刚更新了问题以表明我正在使用RestSharp,并给出了我正在使用的代码。 – martinthebeardy 2014-11-04 10:09:33

+1

嗨马丁,谢谢你补充说,图片现在变得更清晰一点。您的代码中有一部分我没有看到,您如何试图在RestSharp上使用授权标头?你能不能分享一下你把这段代码拉出来的“代码块”。我正在问这个问题的原因是,因为有了RestSharp,它可以帮助验证令牌。看到“代码块”将允许用户看到“整个”图片并相应地为您提供帮助。 – 2014-11-04 19:39:43

回答

0

我有同样的问题,这里的事情是,OAuth是版本1.0 当你从你第一次调用令牌和令牌密钥,使您的用户访问https://trello.com/1/OAuthAuthorizeToken不是你。

你的情况,你有你的用户重定向到https://trello.com/1/OAuthAuthorizeToken?oauth_token=8d0e43fd0cc67726567d49ae5e818852&scope=read,write,account

他会得到一个页面,在那里他可以允许访问。然后,您将在授权后在页面中获得验证码,以继续您的过程(GetAccessToken)。

您可以尝试这个测试,在真实应用程序中,您必须在OAuthAuthorizeToken调用中指定回调URL和应用程序名称。