Токен доступа к Facebook из файла cookie веб-сайта с использованием новых OAuth и C # - PullRequest
3 голосов
/ 06 сентября 2011

Хорошо, я видел этот вопрос, но все же нашел простой ответ, который работает.

Пользователь заходит на мой веб-сайт и уже "авторизовал" мой веб-сайт / приложение, используя стандартный диалог входа в систему Facebook - ИСПОЛЬЗОВАНИЕ oauth.

По возвращении на мой сайт у пользователя есть файл cookie на его компьютере, который начинается с "fbsr_%" - из того, что я читаю, это считается "кодом".

Что я хотел бы сейчас сделать, так это взять этот файл cookie на стороне сервера, позвонить в Facebook, из того, что я нашел, я должен позвонить: "https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}"

затем получите обратно полученный токен ...

Я хотел бы получить токен доступа без необходимости перенаправлять пользователя на клиент. Итак, что у меня есть, так это то, что, как я понял, должно работать, но для меня это всегда выдает ошибку «Удаленный сервер возвратил ошибку: (400) Bad Request».

string url = "https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}";  
string redirectUri = "http://www.mysite.com/";  
string code = Request.Cookies["fbsr_" + clientId].Value;

WebRequest request = WebRequest.Create(string.Format(url, clientId, redirectUri, clientSecret, code));    
WebResponse response = request.GetResponse();

Stream stream = response.GetResponseStream();  
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");  
StreamReader streamReader = new StreamReader(stream, encode);  
string accessToken = streamReader.ReadToEnd().Replace("access_token=", "");  
streamReader.Close();  
response.Close();  

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Теперь, когда Facebook требует SSL для приложений, ваш "redirect_uri" должен быть https (т.е. https://apps.facebook.com/myapp/),, иначе вы получите "Плохой запрос".

Значение "redirect_uri" для access_token (https://graph.facebook.com/oauth/access_token) должно быть такое же , как и при запросе кода, который требует от пользователя входа в систему и подключения к вашему приложению (https://graph.facebook.com/oauth/authorize или ) https://www.facebook.com/dialog/oauth) или вы получите ту же ошибку, «Неверный запрос».

0 голосов
/ 29 мая 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...