0

アップデート:

たぶん、oAuthがどのように機能するかを理解していないのは私だけですか?http://www.apikitchen.comでクエリを手動で実行しようとしましたが、そこでも400エラーが発生します。念のため、ここでURLを正しく作成していますか?

POST URL:

https://api.bufferapp.com/1/oauth2/token.json?client_id=[hidden]&client_secret=[hidden]&redirect_uri=http://apps.joel-murphy.com/buffer/code/success.php&code= [ 1/で始まるバッファから取得したアクセスコード]&grant_type = authentication_code

元の投稿:

Webサイトのデータを使用する必要があるWindowsPhoneアプリケーションを構築しています。WebサイトはoAuthを使用してユーザーを認証します。

組み込みのWebブラウザー制御を使用して、ユーザーを認証するためのGET要求を作成しました。公式ドキュメントでは、URL構造は次のようになっている必要があります。

GET https://bufferapp.com/oauth2/authorize?client_id = ...&redirect_uri = ...&response_type = code

私のアプリのこの部分は機能します。サーバーからのアクセストークンと認証トークンを交換することになると、私は問題に直面しています。公式ドキュメントでは、URL構造は次のようになっている必要があります。

POST https://api.bufferapp.com/1/oauth2/token.json?client_id = ...&client_secret = ...&redirect_uri = ...&code = ...&grant_type = authentication_code

私が間違っている場合は訂正してください。ただし、フォームを送信しない限り、ブラウザからPOSTリクエストを行う方法はありません。このため、このWebClientクラスを使用してサーバーにデータを送信することにしました。ただし、コードを実際のデバイスで実行するか、Visual Studioエミュレーターで実行するかに関係なく、常に次のエラーが発生します。

リモートサーバーがエラーを返しました:NotFound

ここに画像の説明を入力してください

次のコードの何が問題になっているのか誰かが知っていますか?このエラーを解決するために2日間で5時間以上費やしましたが、何も機能していないようです。

私が使用しているコード:

    WebClient wc = new WebClient();
    wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);

    wc.UploadStringAsync(new Uri(access_token_url), "POST", GetPostParameters());


    void wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
        try 
        {
            MessageBox.Show(e.Result);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    string GetPostParameters()
    {
        string data = "";
        data += "client_id="+client_id + "&";
        data += "client_secret=" +client_secret + "&";
        data += "redirect_uri=" + redirect_uri+ "&";
        data += "code=" + App.AccessToken + "&";
        data += "grant_type=authorization_code";
        return data;
    }

誰かが何が悪いのか分かりますか?これは私を夢中にさせています、そしてそれが今日そのような使用された技術であるとき、oauthがとても複雑でなければならないのは本当に残念です。

前もって感謝します。

4

1 に答える 1

0

redirect_uri 変数を URL エンコードしてみてください。

于 2012-07-08T15:23:28.363 に答える