2012-02-10 9 views
1

私は認証トークンを要求しようとしている:DotNetOpenAuth IProtocolMessageメッセージ

public static void RequestAuthorization(WebConsumer consumer) 
{ 
    var extraParams = new Dictionary<string, string> { 
     { "oauth_token", string.Empty}, 
     { "oauth_callback", "http://www.ihighfive.com/" }, 
    }; 

    var req = consumer.PrepareRequestUserAuthorization(callback, extraParams, null);  
    consumer.Channel.Send(req); 
} 

問題は、ある私は.PrepareRequestUserAuthorizationを()私は次のようなエラーに

期待IProtocolMessageメッセージが表示されますが、受信を実行するとき認識できない メッセージ。

フィドラーとのリクエスト/レスポンスの検査、私は、応答を返す(値はobfusticated)ことがわかります。私には

{ "oauth_token" : "this-is-the-oauth-token", 
"oauth_token_secret" : "this-is-the-oauth-secret-token", 
"oauth_callback_confirmed" : true, 
"urlToSendUserTo" : "http://blah.blah.com/api/OAuthAuthorizeToken.aspx?oauth_token=token-value-is-really-long"} 

が、これは良い反応であると思われます。私がurlToSendUserToを訪問すると、それは動作し、私の最初のコールバックURLに渡されます。だから私はDNOAは、応答を解析する問題があると思うが、私はなぜ見ることができません。

+0

送受信したMIMEタイプを確認します。応答は 'json/text'ですが、あなたの' WebConsumer'は他の何かを期待しているようです。あなたのWebConsumerは 'accept'ヘッダを送信していますか? – Diego

+0

要求には受け入れヘッダーがないようです。 –

答えて

1

サーバはどのプロトコルを使用していますか?これはOAuth 1.0ではなく、DotNetOpenAuthでOAuth 1.0クラスを使用しています。 OAuth 1.0 mandatesレスポンスはapplication/x-www-form-urlencodedフォーマットであるが、レスポンスのスニペットでは明らかにJSONであることに注意してください。

また、urlToSendUserToパラメータはどの仕様でも見たことがありません。なぜ、空のoauth_tokenを要求の追加パラメータとして送信しているのかわかりません。

あなたやサーバーが非常に異なる言語を話しているようです。

+0

サーバーがOAuth 1.0a(https://www.dialawg.com/api/#nav=view%3DapiIntro)を使用していると主張しています。空のoauth_tokenを省略することができます(あなたが投稿したリンクの最後に記載されています)。私はそれの有無にかかわらず試しました。 –

+0

@CoreyDownie私はこれらのdialawgの皆さんに電子メールを送り、JSONレスポンスを送信している理由を尋ねることをお勧めします。それは間違いなくOAuth 1.0aに準拠していません。 –

+0

私はそれらを持ってきます、アンドリューに感謝します。 –

関連する問題