C#MVCアプリケーションでFacebookを使用してサーバー側のログインプロセスを作成しようとしています。
アプリでステータスの更新を送信する時点で、Facebookに公開する必要があります。リダイレクトを行うのは、次のとおりです。
https://www.facebook.com/dialog/oauth?client_id={0}&scope={1}&redirect_uri={2}
この方法の使用:
Response.Redirect(...);
ここで、リダイレクトURIは次のようにエンコードされます。
HttpUtility.UrlEnconde("http://local.mydomain.com/getAuthToken?message=the original message");
そして、(fbパーミッションを受け入れた後)MVCアプリに戻ると、getAuthTokenアクションがURIにリクエストを送信します。
https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&code={2}&redirect_uri={3}
この方法の使用:
using (var wc = new WebClient()){
wc.DownloadString(...)
}
ここで、リダイレクトURIは次のようにエンコードされます。
HttpUtility.UrlEnconde("http://local.mydomain.com/getAuthToken?message=the original message");
「元のメッセージ」にスペースが含まれていない場合は機能しますが、スペースやその他の特殊文字を追加し始めると、OAuth例外が発生します。
確認コードの検証中にエラーが発生しました
だから私の質問は、それを機能させるためにどのようなURLエンコンディングを使用する必要があるかということです
ここで何かを見つけましたが、同じエラーが発生します。リダイレクトを行うために特別なメソッドが必要かどうか、またはこの2つのリクエストに異なるエンコーディングが必要かどうかはわかりません。