好吧,所以我已经看到了这个问题,但却找到了一个有效的简单答案。
用户访问我的网站并已使用标准的Facebook登录对话框“授权”我的网站/应用程序 - 使用oauth。
返回我的网站后,用户在他的机器上有一个以“fbsr_%”开头的cookie - 从我正在阅读的内容中被视为“代码”。
我现在要做的就是抓住这个cookie服务器端,打电话给facebook,我发现我应该打电话:“https://graph.facebook.com/oauth/access_token ?CLIENT_ID = {0}&安培; REDIRECT_URI = {1}&安培; client_secret = {2}&安培;代码= {3}“
然后收回accessstoken ...
我希望收到访问令牌,而无需在客户端上重定向用户。所以到目前为止我所拥有的内容如下,从我收集到的内容应该可行,但对我来说它总是给我一个错误“远程服务器返回错误:(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();
非常感谢任何帮助
答案 0 :(得分:1)
现在Facebook要求应用程序使用SSL,“redirect_uri”需要 https (即https://apps.facebook.com/myapp/),否则您将收到“错误请求”。
access_token(https://graph.facebook.com/oauth/access_token)的“redirect_uri”需要与请求用户登录的代码时的相同连接到您的应用程序(https://graph.facebook.com/oauth/authorize或https://www.facebook.com/dialog/oauth)或者您将收到相同的错误,“错误请求”。
答案 1 :(得分:-1)