2012-04-28 4 views
4

Windows Phone 7アプリからTrelloのOAuth API呼び出しを使用する方法を理解するのに少し苦労しています。 listing of the endpointsを除いて、APIは実際には文書化されていません。RestSharpを使用したTrello APIの認証

は、ここで私がこれまで持っているものだ:私は404応答を取得しています

public void OnAuthenticateClicked(object sender, EventArgs e) 
{ 
    const string consumerKey = "mykey"; 
    const string consumerSecret = "mysecret"; 
    const string baseUrl = "https://trello.com/1"; 

    var client = new RestClient(baseUrl) 
    { 
     Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret) 
    }; 
    var request = new RestRequest("OAuthGetRequestToken", Method.POST); 
    var response = client.ExecuteAsync(request, HandleResponse); 
} 

private void HandleResponse(IRestResponse restResponse) 
{ 
    var response = restResponse; 
    Console.Write(response.StatusCode); 
} 

、その何かは明らかに、ではないそうです。

提案がありますか?

+0

GETをお試しください。 –

+0

ありがとうございましたが、それはどちらもうまくいきませんでした。 –

+0

ExecuteAsyncを使用していない場合は機能しますか(例: 'IRestResponse response = client.Execute(request);')?これは私にとって最初のステップ( 'OauthGetRequestToken'ビット)を働かせます。 –

答えて

1

OAuthGetRequestTokenをauthorizeに置き換えます。

+0

応答ありがとう、ジョン。それを試しましたが、私はまだ '404'を取得しています。 'OAuthGetRequestToken'を使用したとき、' RequestUri'が正しく形成され、正しいと思われるhttps://trello.com/1/https://trello.com/1/OAuthGetRequestTokenを指していました。私はRestSharpの統合テストからこれを困惑させようとしていますが、あなたがそこで行っていることをTrelloの呼び出しにどのようにマッピングするのかは明らかではありません。 –

+1

私の電話機にいたときに、OAuth URLセクションが表示されませんでした。 oauth以外のバージョンはほとんど簡単に見えます。代わりにそれを使うことを考えましたか? –

+0

良い提案。これは実装が非常に簡単であることが判明しましたが、私はHTML応答からトークンを解析することに夢中ではありません。壊れそうだ。長期的には、OAuthは「適切な」方法のように見えますが、今はもっと簡単な方法を採用します。 –

2

ExecuteAsyncはそれを動作させるように思わ使用しない:1点で

RestRequest request = new RestRequest("OAuthGetRequestToken", Method.POST); 
IRestResponse response = client.Execute(request); 
Console.Write(response.StatusCode); 

はジョン・シーハンによってthis postによると、「oAuth1はまだ非同期のシナリオ(SLとWP)でサポートされていません」。

+0

興味深い観察。それを試していただきありがとうございます。残念ながら、Windows Phoneは非同期呼び出しのみをサポートしています。しかし、これは私に調査のためのベクトルを与えます。 –

+1

@JoshEarl OAuth 1.0ではasyncがサポートされていなかったようですが、それでもまだ正しいかどうかはわかりません。 –

1

あなたのベースURLが間違っていると思います。 以下を試してください:

const string baseUrl = "https://api.trello.com/1";

関連する問題