Windows コンピューターで実行される .NET アプリを作成しています。ブラウザからはアクセスできません。問題は、本来あるべきように認証できないことです。私は現在、C# .NET でコーディングしています。より具体的には C# でコーディングしています。
- フォームに Web ブラウザー コントロールがあります。
- ユーザーは、この Web ブラウザー コントロールを介して facebook にログオンします。
- ログオン後、認証手続きを開始します。
- 次に、コードを取得します。
ここが間違っているところです。このコードを使用して、アクセス トークンを取得します。生成されたリクエスト URL は次のようhttps://graph.facebook.com/oauth/access_token?client_id=____MY_APP_ID______&redirect_uri=http://localhost/&client_secret=_____MY_APP_SECRET_____&code=____MY_RETREIVED_CODE_____
になります。以下のコードで作成されます。
私のリダイレクト URL はhttp://localhost
. これで大丈夫ですよね?
また、私のアプリ設定には、次の情報があります。
サイト URL:
http://localhost/
サイト ドメイン: localhost
private String ExchangeCodeForToken(String code, Uri redirectUrl)
{
var TokenEndpoint = new Uri("https://graph.facebook.com/oauth/access_token");
var url = TokenEndpoint + "?" +
"client_id=" + _AppID + "&" +
"redirect_uri=" + redirectUrl + "&" +
"client_secret=" + _AppSecret + "&" +
"code=" + code;
var request = WebRequest.CreateDefault(new Uri(url));
using (var response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
using (var responseReader = new StreamReader(responseStream))
{
var responseText = responseReader.ReadToEnd();
var token = responseText.Replace("access_token=", "");
return token;
}
}
}
}
これを実行すると、次のエラーが発生します。
Webexception はユーザー コードによって処理されませんでした リモート サーバーがエラーを返しました: (400) Bad Request。
ここで私は間違っているかもしれないと思うところです:
- アプリの設定は正しいですか?
http://localhost
実際にリッスンしているサービスがなくても、リダイレクト URL はである必要がありますか?
最も重要なこと:
- このエラーを取り除き、アクセス トークンを取得するにはどうすればよいですか?
前もって感謝します!