public Group[] GetGroups(long?uid, long[] gids) { List <FacebookParam> param_list = new List <FacebookParam>(); param_list.Add(FacebookParam.Create("session_key", session_info.SessionKey)); param_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); if (uid != null) { param_list.Add(FacebookParam.Create("uid", uid)); } if (gids != null) { param_list.Add(FacebookParam.Create("gids", gids)); } GroupsResponse rsp = util.GetResponse <GroupsResponse>("facebook.groups.get", param_list.ToArray()); foreach (Group gr in rsp.Groups) { gr.Session = this; } return(rsp.Groups); }
public bool HasAppPermission(string permission) { return(util.GetBoolResponse("facebook.users.hasAppPermission", FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("session_key", session_info.session_key), FacebookParam.Create("ext_perm", permission))); }
public Album CreateAlbum(string name, string description, string location) { // create parameter list List <FacebookParam> param_list = new List <FacebookParam> (); param_list.Add(FacebookParam.Create("session_key", session_info.SessionKey)); param_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); param_list.Add(FacebookParam.Create("name", name)); if (description != null && description != string.Empty) { param_list.Add(FacebookParam.Create("description", description)); } if (location != null && location != string.Empty) { param_list.Add(FacebookParam.Create("location", location)); } // create the albums Album new_album = util.GetResponse <Album> ("facebook.photos.createAlbum", param_list.ToArray()); new_album.Session = this; // return return(new_album); }
internal FacebookParam[] Sign(string method_name, FacebookParam[] parameters) { List <FacebookParam> list = new List <FacebookParam> (parameters); list.Add(FacebookParam.Create("method", method_name)); list.Add(FacebookParam.Create("api_key", api_key)); list.Add(VersionParam); list.Sort(); StringBuilder values = new StringBuilder(); foreach (FacebookParam param in list) { values.Append(param.ToString()); } values.Append(secret); byte[] md5_result = MD5.Create().ComputeHash(Encoding.ASCII.GetBytes(values.ToString())); StringBuilder sig_builder = new StringBuilder(); foreach (byte b in md5_result) { sig_builder.Append(b.ToString("x2")); } list.Add(FacebookParam.Create("sig", sig_builder.ToString())); return(list.ToArray()); }
public Tag[] GetTags() { StringBuilder pids = new StringBuilder(); foreach (Photo p in GetPhotos()) { if (pids.Length > 0) { pids.Append(","); } pids.Append(p.PId); } PhotoTagsResponse rsp = Session.Util.GetResponse <PhotoTagsResponse> ("facebook.photos.getTags", FacebookParam.Create("pids", pids), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", System.DateTime.Now.Ticks)); foreach (Tag t in rsp.Tags) { t.Session = Session; } return(rsp.Tags); }
public Event[] GetEvents(long?uid, long[] eids, long start_time, long end_time, string rsvp_status) { List <FacebookParam> param_list = new List <FacebookParam>(); param_list.Add(FacebookParam.Create("session_key", session_info.SessionKey)); param_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); if (uid != null) { param_list.Add(FacebookParam.Create("uid", uid)); } if (eids != null) { param_list.Add(FacebookParam.Create("eids", eids)); } param_list.Add(FacebookParam.Create("start_time", start_time)); param_list.Add(FacebookParam.Create("end_time", start_time)); if (rsvp_status != null) { param_list.Add(FacebookParam.Create("rsvp_status", rsvp_status)); } EventsResponse rsp = util.GetResponse <EventsResponse>("facebook.events.get", param_list.ToArray()); foreach (Event evt in rsp.Events) { evt.Session = this; } return(rsp.Events); }
public bool RevokeAppPermission(string permission) { return(util.GetBoolResponse ("facebook.auth.revokeExtendedPermission", FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("session_key", session_info.session_key), FacebookParam.Create("perm", permission))); }
public XmlDocument Query(string sql_query) { XmlDocument doc = Util.GetResponse("facebook.fql.query", FacebookParam.Create("session_key", SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("query", sql_query)); return(doc); }
public bool AreFriends(long uid1, long uid2) { AreFriendsResponse response = Util.GetResponse <AreFriendsResponse>("facebook.friends.areFriends", FacebookParam.Create("session_key", SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("uids1", uid1), FacebookParam.Create("uids2", uid2)); return(response.friend_infos[0].AreFriends); }
public SessionInfo GetSessionFromToken(string auth_token) { this.session_info = util.GetResponse <SessionInfo>("facebook.auth.getSession", FacebookParam.Create("auth_token", auth_token)); this.util.SharedSecret = session_info.Secret; this.auth_token = string.Empty; return(session_info); }
public Photo[] GetPhotos() { PhotosResponse rsp = Session.Util.GetResponse <PhotosResponse> ("facebook.photos.get", FacebookParam.Create("aid", aid), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks)); foreach (Photo p in rsp.Photos) { p.Session = Session; } return(rsp.Photos); }
// does not work right now: cannot tag photo already visible on facebook public Tag AddTag(string tag_text, float x, float y) { Tag new_tag = Session.Util.GetResponse <Tag> ("facebook.photos.addTag", FacebookParam.Create("pid", PId), FacebookParam.Create("tag_text", tag_text), FacebookParam.Create("x", x), FacebookParam.Create("y", y), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", System.DateTime.Now.Ticks)); new_tag.Session = Session; return(new_tag); }
public Tag[] GetTags() { PhotoTagsResponse rsp = Session.Util.GetResponse <PhotoTagsResponse> ("facebook.photos.getTags", FacebookParam.Create("pids", PId), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", System.DateTime.Now.Ticks)); foreach (Tag t in rsp.Tags) { t.Session = Session; } return(rsp.Tags); }
public Album[] GetAlbums() { AlbumsResponse rsp = util.GetResponse <AlbumsResponse> ("facebook.photos.getAlbums", FacebookParam.Create("uid", session_info.UId), FacebookParam.Create("session_key", session_info.SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks)); foreach (Album album in rsp.Albums) { album.Session = this; } return(rsp.Albums); }
public Photo GetPhoto() { PhotosResponse rsp = Session.Util.GetResponse <PhotosResponse> ("facebook.photos.get", FacebookParam.Create("pids", PId), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", System.DateTime.Now.Ticks)); if (rsp.Photos.Length < 1) { return(null); } rsp.Photos[0].Session = Session; return(rsp.Photos[0]); }
public Notifications GetNotifications() { Notifications notifications = util.GetResponse <Notifications>("facebook.notifications.get", FacebookParam.Create("uid", session_info.UId), FacebookParam.Create("session_key", session_info.SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks)); foreach (Friend f in notifications.FriendRequests) { f.Session = this; } return(notifications); }
public Album GetAlbum() { AlbumsResponse rsp = Session.Util.GetResponse <AlbumsResponse> ("facebook.photos.getAlbums", FacebookParam.Create("aids", AId), FacebookParam.Create("session_key", Session.SessionKey), FacebookParam.Create("call_id", System.DateTime.Now.Ticks)); if (rsp.Albums.Length < 1) { return(null); } rsp.Albums[0].Session = Session; return(rsp.Albums[0]); }
public Friend[] GetFriends() { FriendsResponse response = Util.GetResponse <FriendsResponse>("facebook.friends.get", FacebookParam.Create("session_key", SessionKey), FacebookParam.Create("call_id", DateTime.Now.Ticks)); Friend[] friends = new Friend[response.UIds.Length]; for (int i = 0; i < friends.Length; i++) { friends[i] = new Friend(response.UIds[i], this); } return(friends); }
public User[] GetUserInfo(long[] uids, string[] fields) { List <FacebookParam> param_list = new List <FacebookParam>(); param_list.Add(FacebookParam.Create("session_key", session_info.SessionKey)); param_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); if (uids == null || uids.Length == 0) { throw new Exception("uid not provided"); } param_list.Add(FacebookParam.Create("uids", uids)); param_list.Add(FacebookParam.Create("fields", fields)); UserInfoResponse rsp = util.GetResponse <UserInfoResponse>("facebook.users.getInfo", param_list.ToArray()); return(rsp.Users); }
public Album[] GetAlbums() { try { var rsp = util.GetResponse <AlbumsResponse> ("facebook.photos.getAlbums", FacebookParam.Create("uid", session_info.uid), FacebookParam.Create("session_key", session_info.session_key), FacebookParam.Create("call_id", DateTime.Now.Ticks)); var profile_rsp = util.GetResponse <AlbumsResponse> ("facebook.photos.getAlbums", FacebookParam.Create("uid", session_info.uid), FacebookParam.Create("session_key", session_info.session_key), FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("aid", -3)); // Filters out Profile pictures album, can't upload there. return(rsp.albums.Where((a) => a.aid != profile_rsp.album [0].aid).ToArray()); } catch (FormatException) { return(new Album[0]); } }
public FriendInfo[] AreFriends(long[] uids1, long[] uids2) { List <FacebookParam> param_list = new List <FacebookParam> (); param_list.Add(FacebookParam.Create("session_key", session_info.SessionKey)); param_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); if (uids1 == null || uids1.Length == 0) { throw new Exception("uids1 not provided"); } if (uids2 == null || uids2.Length == 0) { throw new Exception("uids2 not provided"); } param_list.Add(FacebookParam.Create("uids1", uids1)); param_list.Add(FacebookParam.Create("uids2", uids2)); AreFriendsResponse rsp = util.GetResponse <AreFriendsResponse> ("facebook.friends.areFriends", param_list.ToArray()); return(rsp.friend_infos); }
public GroupMemberList GetMembers() { GroupMembersResponse rsp = Session.Util.GetResponse <GroupMembersResponse>("facebook.groups.getMembers", FacebookParam.Create("gid", GId), FacebookParam.Create("call_id", DateTime.Now.Ticks), FacebookParam.Create("session_key", Session.SessionKey)); GroupMemberList members = new GroupMemberList(); members.Members = new Friend [rsp.Members.UIds.Length]; for (int i = 0; i < members.Members.Length; i++) { members.Members [i] = new Friend(rsp.Members.UIds [i], this.Session); } members.Admins = new Friend [rsp.Admins.UIds.Length]; for (int i = 0; i < members.Admins.Length; i++) { members.Admins [i] = new Friend(rsp.Admins.UIds [i], this.Session); } members.NotReplied = new Friend [rsp.NotReplied.UIds.Length]; for (int i = 0; i < members.NotReplied.Length; i++) { members.NotReplied [i] = new Friend(rsp.NotReplied.UIds [i], this.Session); } members.Officers = new Friend [rsp.Officers.UIds.Length]; for (int i = 0; i < members.Officers.Length; i++) { members.Officers [i] = new Friend(rsp.Officers.UIds [i], this.Session); } return(members); }
internal Photo Upload(long aid, string caption, string path, string session_key) { // check for file FileInfo file = new FileInfo(path); if (!file.Exists) { throw new FileNotFoundException("Upload file not found", path); } // create parameter string List <FacebookParam> parameter_list = new List <FacebookParam>(); parameter_list.Add(FacebookParam.Create("call_id", DateTime.Now.Ticks)); parameter_list.Add(FacebookParam.Create("session_key", session_key)); parameter_list.Add(FacebookParam.Create("aid", aid)); if (caption != null && caption != string.Empty) { parameter_list.Add(FacebookParam.Create("caption", caption)); } FacebookParam[] param_array = Sign("facebook.photos.upload", parameter_list.ToArray()); string param_string = string.Empty; foreach (FacebookParam param in param_array) { param_string = param_string + "--" + BOUNDARY + LINE; param_string = param_string + "Content-Disposition: form-data; name=\"" + param.Name + "\"" + LINE + LINE + param.Value + LINE; } param_string = param_string + "--" + BOUNDARY + LINE + "Content-Disposition: form-data; name=\"filename\"; filename=\"" + file.Name + "\"" + LINE + "Content-Type: image/jpeg" + LINE + LINE; string closing_string = LINE + "--" + BOUNDARY + "--"; // get bytes byte[] param_bytes = System.Text.Encoding.Default.GetBytes(param_string); byte[] closing_bytes = System.Text.Encoding.Default.GetBytes(closing_string); byte[] file_bytes = System.IO.File.ReadAllBytes(path); // compose List <byte> byte_list = new List <byte>(param_bytes.Length + file_bytes.Length + closing_bytes.Length); byte_list.AddRange(param_bytes); byte_list.AddRange(file_bytes); byte_list.AddRange(closing_bytes); byte[] final_bytes = new byte[byte_list.Count]; byte_list.CopyTo(final_bytes); // create request WebClient wc = new WebClient(); wc.Headers.Set("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); wc.Headers.Add("MIME-version", "1.0"); // upload byte[] response = wc.UploadData("http://api.facebook.com/restserver.php?", "POST", final_bytes); // deserialize XmlSerializer photo_serializer = new XmlSerializer(typeof(Photo)); try { return((Photo)photo_serializer.Deserialize(new MemoryStream(response))); } catch { Error error = (Error)ErrorSerializer.Deserialize(new MemoryStream(response)); throw new FacebookException(error.ErrorCode, error.ErrorMsg); } }