【发布时间】:2011-09-05 22:07:34
【问题描述】:
好的,所以我看到有人问过这个问题,但找到了一个简单的有效答案。
用户访问我的网站,并且已经使用标准的 facebook 登录对话框“授权”了我的网站/应用程序 - 使用 oauth。
返回我的网站后,用户在他的机器上有一个以“fbsr_%”开头的 cookie - 从我正在阅读的内容来看,这被认为是“代码”。
我现在想做的是在服务器端获取这个 cookie,从我发现我应该调用的内容中调用 facebook:“https://graph.facebook.com/oauth/access_token ?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}"
然后收回访问令牌...
我希望无需在客户端重定向用户即可接收访问令牌。所以到目前为止我所拥有的如下,从我收集的内容来看,它应该可以工作,但对我来说,它总是给我一个错误“远程服务器返回错误:(400)错误请求。”
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();
任何帮助将不胜感激
【问题讨论】:
标签: c# facebook facebook-graph-api