アップデート:
たぶん、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がとても複雑でなければならないのは本当に残念です。
前もって感謝します。