2012-05-29 3 views
5

Я использую следующий код, чтобы получить facebook маркер доступfacebook Маркер доступ 400 плохо запрос

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 «Неверный параметра» совсем не значит для меня.

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

+0

Попробуйте следующее: http://stackoverflow.com/questions/8240626/facebook-oauth-error-validating-verification-code-sometimes-happen – Thomas

+0

@Thomas, к сожалению, не такая же проблема –

ответ

1

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

Следуйте за Authentication Guide.

+0

Я уже делал это в более раннем коде. часть «кода» работает. поскольку я сказал, что 400-й запрос плохой, когда я запрашиваю токен аутентификации –

+0

Ошибка говорит, что что-то не так с кодом, поэтому убедитесь, что он не изменяется и не изменяется. Это может быть причиной проблемы. –

+0

+1 для восстановления после нисходящего потока. Хотя это и не решило проблему, она по-прежнему не заслуживает ниспроверки. Это может помочь другим. –

4
  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 и Веб-сайт с Fac книгу Войти устанавливаются с таким же addresss например http://www.xyz.com/

+1

Вау, у меня была такая же проблема (без косой черты). Трудно поверить, что вы получаете ответ на ошибку 400 Bad Request, когда это опущено. – Mike

+1

Отсутствие завершающей косой черты * не * эффект меня. – dman

0

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

Фиксация их (см. Также для правильного хоста) исправлено проблема для меня.