def getPosts(self, token=None, dateMin="", dateMax="", limit=100, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/feed ''' if (token==None): token=_Actions.Actions.token params={} if (token == None): token = _Actions.Actions.token if (dateMin!="" and dateMax!="" and dateMin > dateMax): raise Exception("Cannot use dateMin > dateMax") if (dateMax != ""): params["until"]=dateMax r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.5/"+self.id+"/feed?fields=id,caption,created_time,description,feed_targeting,from,icon,is_hidden,is_published,link,message,message_tags,name,object_id,parent_id,picture,place,privacy,properties,shares,source,status_type,story,targeting,to,type,updated_time,with_tags&limit=100&access_token="+token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: post=_Post_Facebook.Post_Facebook(dictionary=a) if ((len(lista)==limit) or (dateMin!="" and parse(post.created_time).replace(tzinfo=None)<dateMin)): return lista lista.append(post) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getPosts(self, token=None, dateMin="", dateMax="", limit=100, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/page/feed ''' if (token==None): token=_Actions.Actions.token params={} if (token == None): token = _Actions.Actions.token if (dateMin!="" and dateMax!="" and dateMin > dateMax): raise Exception("Cannot use dateMin > dateMax") if (dateMax != ""): params["until"]=dateMax r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.5/"+self.id+"/feed?fields=id,caption,created_time,description,feed_targeting,from,icon,is_hidden,is_published,link,message,message_tags,name,object_id,parent_id,picture,place,privacy,properties,shares,source,status_type,story,targeting,to,type,updated_time,with_tags&limit=100&access_token="+token, timeout=timeout).json() # print(r) lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: post=_Post_Facebook.Post_Facebook(dictionary=a) if ((len(lista)==limit) or (dateMin!="" and parse(post.created_time).replace(tzinfo=None)<dateMin)): return lista lista.append(post) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getComments(self,token=None, timeout=(5,5), maxRetries=50): if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Comments?fields=id,attachment,can_comment,can_remove,can_like,comment_count,created_time,from,like_count,message,message_tags,object,parent,user_likes,is_hidden&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Comment.Comment(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getLikes(self,token=None, timeout=(5,5), maxRetries=50): if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/likes?&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_User.FacebookUser(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getPhotos(self, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/album/photos ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Photos?fields=id,album,backdated_time,backdated_time_granularity,can_delete,can_tag,created_time,from,height,icon,images,link,name,name_tags,page_story_id,picture,place,updated_time,width&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Photo.Photo(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getVideos(self, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/videos/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Videos?fields=backdated_time,backdated_time_granularity,id,created_time,description,embed_html,format,from,icon,is_instagram_eligible,length,permalink_url,picture,place,privacy,source,status,updated_time&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Video.Video(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getComments(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/comments/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Comments?fields=id,attachment,can_comment,can_remove,can_like,comment_count,created_time,from,like_count,message,message_tags,object,parent,user_likes,is_hidden&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Comment.Comment(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getPhotos(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/photos/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/photos?access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Photo.Photo(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getVideos(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/videos/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/videos?fields=backdated_time,backdated_time_granularity,id,created_time,description,embed_html,format,from,icon,is_instagram_eligible,length,permalink_url,picture,place,privacy,source,status,updated_time&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Video.Video(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getEvents(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/events/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/events?fields=id,can_guests_invite,cover,description,end_time,guest_list_enabled,is_page_owned,is_viewer_admin,name,owner,parent_group,start_time,ticket_uri,timezone,updated_time&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Events.Events(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getAlbums(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/albums/ ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/albums?fields=id,can_upload,count,cover_photo,created_time,description,event,from,link,location,name,place,privacy,type,updated_time&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Albums.Albums(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def postLike(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/object/likes ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).post("https://graph.facebook.com/v2.6/"+self.id+"/likes?&access_token="+token, timeout=timeout).json() return str(r)
def delete(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/photo ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).post("https://graph.facebook.com/v2.6/"+self.id+"?&access_token="+token+"&method=delete", timeout=timeout).json() return str(r)
def getDocs(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/group/docs ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/docs?fields=id,from,subject,message,icon,created_time,updated_time,revision,can_edit,can_delete&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Group_Doc.Group_Doc(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getAttending(self,token=None, timeout=(5,5), maxRetries=50): ''' User: https://developers.facebook.com/docs/graph-api/reference/event/attending/ ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Attending?&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_User.FacebookUser(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getFiles(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/group/files ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/files?fields=id,from,group,download_link,updated_time&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(a) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getPhotos(self, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/photos/ ''' import SolFB._Photo as _Photo if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Photos?fields=id,album,backdated_time,backdated_time_granularity,can_delete,can_tag,created_time,from,height,icon,images,link,name,name_tags,page_story_id,picture,place,updated_time,width&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Photo.Photo(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getLive_Videos(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/live_videos/ ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/live_videos?fields=id,broadcast_start_time,creation_time,description,from,is_reference_only,live_views,permalink_url,seconds_left,status,title,total_views,video&access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(_Live_Videos.Live_Videos(dictionary=a)) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def deleteLike(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/object/likes ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).post("https://graph.facebook.com/v2.6/"+self.id+"/likes?&access_token="+token+"&method=delete", timeout=timeout).json() return str(r)
def getCommentCount(self, token=None, timeout=(5, 5), maxRetries=50): if (token == None): token = _Actions.Actions.token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "?fields=comments.summary(true)&access_token=" + token, timeout=timeout).json() return r["comments"]["summary"]["total_count"]
def getPicture(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/event/picture/ ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Picture?fields=height,is_silhouette,url,width&redirect=0&type=large&access_token="+token, timeout=timeout).json() return r["data"]["url"]
def getInfo(self, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/comment ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"?&access_token="+token, timeout=timeout).json() c=Comment(dictionary=r) return c;
def getRoles(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/page/roles ''' if (token==None and (self.access_token=="" or self.access_token==None)): raise Exception("This action requires a page token") if (token==None): token=self.access_token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/roles?access_token="+token, timeout=timeout).json() lista=list() while ("data" in r and len(r["data"])>0): for a in r["data"]: lista.append(a) if ("next" in r["paging"]): r=_Utility.prepareRequest(maxRetries=maxRetries).get(r["paging"]["next"], timeout=timeout).json() else: break return lista
def getLikes(self, token=None, timeout=(5, 5), maxRetries=50): if (token == None): token = _Actions.Actions.token #print("token="+str(token)) r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/likes?&access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(_User.FacebookUser(dictionary=a)) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getPicture(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/picture/ ''' if (token==None): token=_Actions.Actions.token #print("token="+str(token)) r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/Picture?fields=height,is_silhouette,url,width&redirect=0&type=large&access_token="+token, timeout=timeout).json() return r["data"]["url"]
def getInfo(self, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/photo ''' if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"?fields=id,album,backdated_time,backdated_time_granularity,can_delete,can_tag,created_time,from,height,icon,images,link,name,name_tags,page_story_id,picture,place,updated_time,width&access_token="+token, timeout=timeout).json() c=Photo(dictionary=r) return c;
def getLikesCount(self,token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/insights/ ''' if (token==None and (self.access_token=="" or self.access_token==None)): raise Exception("This action requires a page token") if (token==None): token=self.access_token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"/insights/page_fans/lifetime?&access_token="+token, timeout=timeout).json() return r["data"][0]["values"][0]["value"]
def postAlbum(self,token=None, name="MyAlbum", message="", timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/albums/ ''' if (token==None and (self.access_token=="" or self.access_token==None)): raise Exception("This action requires a page token") if (token==None): token=self.access_token params={"message":message,"name":name} r=_Utility.prepareRequest(maxRetries=maxRetries).post("https://graph.facebook.com/v2.6/"+self.id+"/albums?access_token="+token,params=params, timeout=timeout).json() return r
def getPhotos(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/photos/ ''' if (token == None): token = _Actions.Actions.token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/photos?access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(_Photo.Photo(dictionary=a)) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def update(self,message=None, token=None, timeout=(5,5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/comment ''' if (token==None): token=_Actions.Actions.token if message==None: message=self.message params={"message":message} r=_Utility.prepareRequest(maxRetries=maxRetries).post("https://graph.facebook.com/v2.6/"+self.id+"?&access_token="+token,params=params, timeout=timeout).json() return str(r)
def getEvents(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/events/ ''' if (token == None): token = _Actions.Actions.token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/events?fields=id,can_guests_invite,cover,description,end_time,guest_list_enabled,is_page_owned,is_viewer_admin,name,owner,parent_group,start_time,ticket_uri,timezone,updated_time&access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(_Events.Events(dictionary=a)) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getAlbums(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/albums/ ''' if (token == None): token = _Actions.Actions.token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/albums?fields=id,can_upload,count,cover_photo,created_time,description,event,from,link,location,name,place,privacy,type,updated_time&access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(_Albums.Albums(dictionary=a)) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getInfo(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/photo ''' if (token == None): token = _Actions.Actions.token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "?fields=id,album,backdated_time,backdated_time_granularity,can_delete,can_tag,created_time,from,height,icon,images,link,name,name_tags,page_story_id,picture,place,updated_time,width&access_token=" + token, timeout=timeout).json() c = Photo(dictionary=r) return c
def getDocs(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/group/docs ''' if (token == None): token = _Actions.Actions.token #print("token="+str(token)) r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/docs?fields=id,from,subject,message,icon,created_time,updated_time,revision,can_edit,can_delete&access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(_Group_Doc.Group_Doc(dictionary=a)) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getFiles(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/group/files ''' if (token == None): token = _Actions.Actions.token #print("token="+str(token)) r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/files?fields=id,from,group,download_link,updated_time&access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(a) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getRoles(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/page/roles ''' if (token == None and (self.access_token == "" or self.access_token == None)): raise Exception("This action requires a page token") if (token == None): token = self.access_token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/roles?access_token=" + token, timeout=timeout).json() lista = list() while ("data" in r and len(r["data"]) > 0): for a in r["data"]: lista.append(a) if ("next" in r["paging"]): r = _Utility.prepareRequest(maxRetries=maxRetries).get( r["paging"]["next"], timeout=timeout).json() else: break return lista
def getLikesCount(self, token=None, timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/insights/ ''' if (token == None and (self.access_token == "" or self.access_token == None)): raise Exception("This action requires a page token") if (token == None): token = self.access_token r = _Utility.prepareRequest(maxRetries=maxRetries).get( "https://graph.facebook.com/v2.6/" + self.id + "/insights/page_fans/lifetime?&access_token=" + token, timeout=timeout).json() return r["data"][0]["values"][0]["value"]
def getGroupFromUsername(username, token=None): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/group ''' if (token==None): token=_Actions.Actions.token id=username id2=requests.get("https://graph.facebook.com/search?q="+id+"&type=group&access_token="+token).json() id=id2["data"][0]["id"] meta=requests.get("https://graph.facebook.com/v2.3/"+id+"?metadata=1&access_token="+token).json() meta=meta["metadata"]["type"] if(meta!="group"): raise Exception("ERROR: This ID is not from a group") r=_Utility.prepareRequest().get("https://graph.facebook.com/v2.6/"+id+"?fields=id,cover,description,email,icon,link,member_request_count,name,owner,parent,privacy,updated_time&access_token="+token).json() return Group(dictionary=r)
def getGroupFromUsername(username, token=None): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/v2.8/group ''' if (token == None): token = _Actions.Actions.token id = username id2 = requests.get("https://graph.facebook.com/search?q=" + id + "&type=group&access_token=" + token).json() id = id2["data"][0]["id"] meta = requests.get("https://graph.facebook.com/v2.3/" + id + "?metadata=1&access_token=" + token).json() meta = meta["metadata"]["type"] if (meta != "group"): raise Exception("ERROR: This ID is not from a group") r = _Utility.prepareRequest().get( "https://graph.facebook.com/v2.6/" + id + "?fields=id,cover,description,email,icon,link,member_request_count,name,owner,parent,privacy,updated_time&access_token=" + token).json() return Group(dictionary=r)
def postAlbum(self, token=None, name="MyAlbum", message="", timeout=(5, 5), maxRetries=50): ''' Reference: https://developers.facebook.com/docs/graph-api/reference/page/albums/ ''' if (token == None and (self.access_token == "" or self.access_token == None)): raise Exception("This action requires a page token") if (token == None): token = self.access_token params = {"message": message, "name": name} r = _Utility.prepareRequest(maxRetries=maxRetries).post( "https://graph.facebook.com/v2.6/" + self.id + "/albums?access_token=" + token, params=params, timeout=timeout).json() return r
def getCommentCount(self,token=None, timeout=(5,5), maxRetries=50): if (token==None): token=_Actions.Actions.token r=_Utility.prepareRequest(maxRetries=maxRetries).get("https://graph.facebook.com/v2.6/"+self.id+"?fields=comments.summary(true)&access_token="+token, timeout=timeout).json() return r["comments"]["summary"]["total_count"]