facebook Access Token 400 неверный запрос

Я использую следующий код для получения доступа к facebookToken

string url = "https://graph.facebook.com/oauth/access_token?" +
                         "client_id={0}" +
                         "&redirect_uri={1}" +
                         "&client_secret={2}" +
                         "&code={3}";
            url = string.Format(url, clientId, redirectUri.EncodeUrl(), clientSecret, code);
            //Create a webrequest to perform the request against the Uri
            WebRequest request = WebRequest.Create(url);
            try
            {
                //read out the response as a utf-8 encoding and parse out the access_token
                using (WebResponse response = request.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        //string urlRedirects = response.ResponseUri.ToString();
                        Encoding encode = Encoding.GetEncoding("utf-8");
                        if (stream != null)
                        {
                            StreamReader streamReader = new StreamReader(stream, encode);
                            string accessToken = streamReader.ReadToEnd().Replace("access_token=", "");
                            streamReader.Close();
                            response.Close();
                            return accessToken;
                        }
                    }
                }
            }
            catch
            {
                return null;
            }

однако я постоянно получаю это неоднозначное сообщение об ошибке

{
"error": {
"message": "Error validating verification code.",
"type": "OAuthException",
"code": 100
}
}

Я проверил код 100 "Неверный параметр" для меня вообще ничего не значит.

у кого-нибудь была похожая проблема?


person D.J    schedule 29.05.2012    source источник
comment
Попробуйте следующее: stackoverflow .com/questions/8240626/   -  person Thomas    schedule 29.05.2012
comment
@ Томас, к сожалению, не та же проблема   -  person D.J    schedule 30.05.2012


Ответы (3)


  1. Убедитесь, что вы добавляете правильный код в URL. Например

    http://www.xyz.com/?code=AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20#_=_
    

Код должен быть

    code = AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20

код не должен включать следующее в конце

    #_=_ 

Если вышеуказанное не решило проблему


2. redirect_uri должен заканчиваться на /

redirect_uri=http://www.xyz.com/

Следующее дает несколько раз вышеупомянутую ошибку

redirect_uri=http://www.xyz.com


3. Также убедитесь, что для приложения на Facebook и веб-сайта с входом через Facebook заданы одинаковые адреса, например http://www.xyz.com/

person maaz    schedule 30.05.2012
comment
Вау, у меня была такая же проблема (без косой черты). Трудно поверить, что вы получаете ответ об ошибке 400 Bad Request, когда это опущено. - person Mike; 17.08.2012
comment
Отсутствие завершающей косой черты не повлияло на меня. - person dman; 12.12.2017

Вам нужно отправить пользователя на страницу входа в Facebook, чтобы получить действительный code. Затем код следует использовать для получения access_token для пользователя.

Следуйте Руководству по аутентификации.

person Niraj Shah    schedule 29.05.2012
comment
Я уже делал это в более раннем коде. часть кода работает. как я уже сказал, плохой запрос 400 происходит, когда я запрашиваю токен аутентификации - person D.J; 30.05.2012
comment
Ошибка говорит о том, что с кодом что-то не так, поэтому убедитесь, что он в любом случае не модифицируется и не изменяется. Это может быть причиной проблемы. - person Niraj Shah; 30.05.2012
comment
+1, чтобы оправиться от понижения. Несмотря на то, что это не решило проблему, оно все равно не заслуживает отрицательного голоса. Это может помочь другим. - person Mathias Lykkegaard Lorenzen; 30.04.2013

Я также получил сообщение об ошибке 400, когда мой идентификатор и секрет приложения были неправильными (я перепутал идентификаторы и секреты разработки и производства).

Их исправление (следите также за правильным хостом) устранило эту проблему для меня.

person Martin Sookael    schedule 11.01.2016