Последние 5 часов я застрял с аутентификацией в Facebook, и у меня мало мыслей, почему я получаю ошибку: 400 неверных запросов.
В Интернете я нашел один пример приложения, в котором пользователь авторизуется, а затем продолжает работу с приложением. Я запускаю то же самое приложение локально, и я могу запустить его и правильно получить маркер доступа.
Вот способ получить токен:
/// <summary>
/// Get the authorisation token
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public Dictionary<string, string> GetAccessToken(string code, string scope,string redirectUrl)
{
Dictionary<string, string> tokens = new Dictionary<string, string>();
string clientId = FacebookContext.Current.AppId;
string clientSecret = FacebookContext.Current.AppSecret;
string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}&scope={4}",
clientId, redirectUrl, clientSecret, code, scope);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string retVal = reader.ReadToEnd();
foreach (string token in retVal.Split('&'))
{
tokens.Add(token.Substring(0, token.IndexOf("=")),
token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
}
}
return tokens;
}
Проблема возникает, когда ответ пытается получить ответ от объекта запроса:
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
С примером приложения у меня нет проблем, но в приложении я пытаюсь использовать код, получаю ошибку 400 неверных запросов.
Параметр url выглядит примерно так же, и поэтому я понятия не имею, что я делаю неправильно.
Вот пример приложения в формате URL:
https://graph.facebook.com/oauth/access_token?client_id=MY_APP_ID&redirect_uri=http://localhost:5000/fbregcallback.aspx&client_secret=982161272e8adc3af17952dc0f70b67e&code=AQBSvKfdc3ynTWeJTVSq7Y2JRV52YNCHPV5nAluxVf3_Ger68NJZeWScbKg1ttMfVOuXrOTfbvgq6o_bXIemnlx2yH-eu2vDvs-94EDEPxHFPUTQ4UjnSgxKAZjs6h-APxqHrRz5gvlafYb89uIoGhBuu-sIPrvIThBK-BmFRuytrj2fHYSU9y_xbFIjAYNUw_U&scope=user_birthday,publish_stream,create_event,user_photos
Формат URL моего приложения:
https://graph.facebook.com/oauth/access_token?client_id=MY_APP_ID&redirect_uri=http://localhost:47736/Default.aspx&client_secret=982161272e8adc3af17952dc0f70b67e&code=AQBd_IYcBLy-UfV68PDH8gWFOud5eLzVt8ZukSVfo35qSLw7jn5yrpw-zqr4WhVigv0G1tVtEVIj2fnvBAzmWU3SlOtZgCC-0P1sBRQ999JP60Qe4s0UT1c0Z1cupMW8qNdDfuBhzxty9581gTISPq9xYF1SEifX60kDUc1bd7FuUGsGyGBgtfzO8PdNZoGrq6Y&scope=user_birthday,publish_stream,create_event,user_photos
Каждый совет будет приветствоваться, потому что эта проблема действительно действует мне на нервы в данный момент.
Большое спасибо, Laziale