diff --git a/Rfacebook/ChangeLog b/Rfacebook/ChangeLog index d24896a..c5a8b53 100644 --- a/Rfacebook/ChangeLog +++ b/Rfacebook/ChangeLog @@ -82,3 +82,4 @@ - searchGroups now returns 25+ results 2017-07-11 - version 0.6.17 - getUsers now works with recent versions of API + - getMembers function added (thanks Yan Turgeon) diff --git a/Rfacebook/DESCRIPTION b/Rfacebook/DESCRIPTION index 5c84dbd..a079afd 100644 --- a/Rfacebook/DESCRIPTION +++ b/Rfacebook/DESCRIPTION @@ -4,7 +4,7 @@ Description: Provides an interface to the Facebook API. Version: 0.6.17 Date: 2017-07-11 Author: Pablo Barbera , Michael Piccirilli - , Andrew Geisler, Wouter van Atteveldt + , Andrew Geisler, Wouter van Atteveldt, Yan Turgeon Maintainer: Pablo Barbera URL: https://github.com/pablobarbera/Rfacebook BugReports: https://github.com/pablobarbera/Rfacebook/issues diff --git a/Rfacebook/NAMESPACE b/Rfacebook/NAMESPACE index 4ac709c..3c9bab1 100644 --- a/Rfacebook/NAMESPACE +++ b/Rfacebook/NAMESPACE @@ -10,6 +10,7 @@ export(getFriends) export(getGroup) export(getInsights) export(getLikes) +export(getMembers) export(getNetwork) export(getNewsfeed) export(getPage) diff --git a/Rfacebook/R/getMembers.R b/Rfacebook/R/getMembers.R new file mode 100644 index 0000000..1314f9c --- /dev/null +++ b/Rfacebook/R/getMembers.R @@ -0,0 +1,49 @@ +#' @rdname getMembers +#' @export +#' @title +#' Retrieve members from a public group +#' +#' @description +#' \code{getMembers} retrieves members from a public group, up to 5000 members. +#' +#' @param page A group ID +#' +#' @author +#' Yan Turgeon +#' @seealso \code{\link{getPage}}, \code{\link{getPost}}, \code{\link{getCommentReplies}} + +#' @param token Either a temporary access token created at +#' \url{https://developers.facebook.com/tools/explorer} or the OAuth token +#' created with \code{fbOAuth}. +#' +#' @examples \dontrun{ +#' ## Find Facebook ID for R-Users Facebook group +#' load("fb_oauth") +#' ids <- searchGroup(name="rusers", token=fb_oauth) +#' ids[1,] # id = 18533493739 +#' ## Retrieves members ID for R-Users Facebook group +#' members <- getMembers(group_id="18533493739", token=fb_oauth) +#'} + +getMembers <- function(group_id, token, n=5000, api=NULL){ + url <- paste0('https://graph.facebook.com/', group_id, + '/members?fields=id,name,first_name,last_name,administrator&limit=', n) + + # making query + content <- callAPI(url=url, token=token) + + #if no data, return error message + if (length(content$data)==0){ + message("No groups with this name were found.") + return(data.frame()) + } + + # if data, return a data frame + df <- data.frame( + name = unlist(lapply(content$data, '[[', 'name')), + id = unlist(lapply(content$data, '[[', 'id')), + administrator = unlist(lapply(content$data, '[[', 'administrator')), + stringsAsFactors=F) + + return(df) +} diff --git a/Rfacebook/man/getMembers.Rd b/Rfacebook/man/getMembers.Rd new file mode 100644 index 0000000..25efb36 --- /dev/null +++ b/Rfacebook/man/getMembers.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/getMembers.R +\name{getMembers} +\alias{getMembers} +\title{Retrieve members from a public group} +\usage{ +getMembers(group_id, token, n = 5000, api = NULL) +} +\arguments{ +\item{token}{Either a temporary access token created at +\url{https://developers.facebook.com/tools/explorer} or the OAuth token +created with \code{fbOAuth}.} + +\item{page}{A group ID} +} +\description{ +\code{getMembers} retrieves members from a public group, up to 5000 members. +} +\examples{ +\dontrun{ +## Find Facebook ID for R-Users Facebook group +load("fb_oauth") +ids <- searchGroup(name="rusers", token=fb_oauth) + ids[1,] # id = 18533493739 +## Retrieves members ID for R-Users Facebook group + members <- getMembers(group_id="18533493739", token=fb_oauth) +} +} +\seealso{ +\code{\link{getPage}}, \code{\link{getPost}}, \code{\link{getCommentReplies}} +} +\author{ +Yan Turgeon +}