private Dictionary<string, string> GetUserInfo(FacebookAccessToken token) { Dictionary<string, string> info = new Dictionary<string, string>(); string facebookEndpoint = "https://graph.facebook.com/me"; string tokenArgs = string.Format("access_token={0}", UrlEncode(token.AccessToken)); HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(facebookEndpoint + "?" + tokenArgs); try { HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { } else { Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader(response.GetResponseStream(), encode); string responseString = sr.ReadToEnd(); info = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseString); } } catch (System.Net.WebException ex) { if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.BadRequest) { return null; } else { return null; } } return info; }
internal FacebookAccessToken RefreshOAuthAccessToken(Core core, FacebookAccessToken token) { string facebookEndpoint = "https://graph.facebook.com/oauth/access_token"; string redirectTo = (core.Settings.UseSecureCookies ? "https://" : "http://") + Hyperlink.Domain + "/api/facebook/callback"; string tokenArgs = string.Format("grant_type=fb_exchange_token&client_id={0}&client_secret={1}&fb_exchange_token={2}", appId, appSecret, token.AccessToken); HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(facebookEndpoint + "?" + tokenArgs); HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { } else { Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader(response.GetResponseStream(), encode); string responseString = sr.ReadToEnd(); NameValueCollection responseDictionary = HttpUtility.ParseQueryString(responseString); if (!string.IsNullOrEmpty(responseDictionary["access_token"])) { long expires = 0; long.TryParse(responseDictionary["expires"], out expires); return new FacebookAccessToken(string.Empty, responseDictionary["access_token"], expires); } } return null; }
public FacebookPost StatusesUpdate(FacebookAccessToken token, string message, string link, string sharePermissions) { string method = "POST"; string facebookEndpoint = string.Format("https://graph.facebook.com/{0}/feed", token.UserId); string body = "message=" + UrlEncode(message); if (!string.IsNullOrEmpty(link)) { body += "&link=" + UrlEncode(link); } if (!string.IsNullOrEmpty(sharePermissions)) { body += "&privacy=" + UrlEncode("{'value':'" + sharePermissions + "'}"); } body += "&access_token=" + UrlEncode(token.AccessToken); HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(facebookEndpoint); wr.ProtocolVersion = HttpVersion.Version11; wr.UserAgent = "HttpCore/1.1"; wr.ContentType = "application/x-www-form-urlencoded"; wr.Method = method; wr.ContentLength = body.Length; byte[] bodyBytes = UTF8Encoding.UTF8.GetBytes(body); Stream stream = wr.GetRequestStream(); stream.Write(bodyBytes, 0, bodyBytes.Length); HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); string postId = string.Empty; if (response.StatusCode != HttpStatusCode.OK) { } else { Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader(response.GetResponseStream(), encode); string responseString = sr.ReadToEnd(); Dictionary<string, string> info = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseString); postId = info["id"]; } return new FacebookPost(postId); }
internal FacebookAccessToken OAuthAppAccessToken(Core core, string userId) { string facebookEndpoint = "https://graph.facebook.com/oauth/access_token"; string tokenArgs = string.Format("client_id={0}&client_secret={1}&grant_type=client_credentials", appId, appSecret); HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(facebookEndpoint + "?" + tokenArgs); HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { } else { Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader(response.GetResponseStream(), encode); string responseString = sr.ReadToEnd(); NameValueCollection responseDictionary = HttpUtility.ParseQueryString(responseString); if (!string.IsNullOrEmpty(responseDictionary["access_token"])) { FacebookAccessToken token = new FacebookAccessToken(responseDictionary["access_token"], userId); return token; } } return null; }
public void DeleteStatus(FacebookAccessToken token, string postId) { string method = "DELETE"; string facebookEndpoint = string.Format("https://graph.facebook.com/{0}", postId); string tokenArgs = string.Format("access_token={0}", token.AccessToken); HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(facebookEndpoint + "?" + tokenArgs); wr.ProtocolVersion = HttpVersion.Version11; wr.UserAgent = "HttpCore/1.1"; wr.ContentType = "application/x-www-form-urlencoded"; wr.Method = method; HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { } else { Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader sr = new StreamReader(response.GetResponseStream(), encode); string responseString = sr.ReadToEnd(); } }