Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Facebook Data Analytics using R Dr. C. Naga Raju Associate Professor & Head Praveen Kumar D Research Scholar Department of Computer Science & Engineering YSREC of Yogi Vemana University, Proddatur Kadapa Dt., A. P, India July 29, 2016 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 1 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others 1 Introduction 2 Get permissions from facebook 3 Extract Facebook user details with R 4 Update Facebook status with R 5 Extract list of likes of a Facebook friend 6 Search a Group in Facebook with R 7 Search pages that mention a string 8 Extract Recent Posts from the Authenticated user’s newsfeed 9 Extract a post details 10 Extract List of Friends with their Information 11 Extract Facebook Picture of Authenticated User 12 Other Functions in Rfacebook Package Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 2 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Requirements If we want to analyze the facebook data with R following are require ’Rfacebook’, ’RCrul’ packages in R language Permissions to access facebook data Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 3 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Installation & Importing of Rfacebook In R programming we install packages by using install.packages(”Package Name”) function. i.e install.packages(”Rfacebook”) install.packages(”RCrul”) Load Rfacebook & RCrul packages in R using following code require(”Rfacebook”) or library(”Rfacebook”) require(”RCrul”) or library(”RCrul”) Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 4 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Graph API Explore If we want to access the facebook data we must have the facebook account. For accessing facebook data we used one tool it is Graph API Explore available in www.facebook.com with provided link: https://developers.facebook.com/tools/explorer Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 5 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Graph API Explore Screen shot Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 6 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Obtaining Access Token When someone connects with an app using Facebook Login, the app will be able to obtain an access token which provides temporary, secure access to Facebook APIs. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 7 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permission from Facebook We get permission from facebook by using Graph API Explore by Click on Get Token button, When we click on Get token following screen will display: Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 8 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Select the Required Permission from Facebook Choose what kind of facebook data you need to access and click on Get Access Token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 9 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Check Authentication from Facebook It will ask login you are not logged in. Other wise it ask few options like change access permission of logged user and also shown what permissions it allow to analysis. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 10 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Access Token from Graph API Tool Finally it will generate Access token. Copy access token for further accessing in R language. That access token valid only 2 hours. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 11 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permanent Access Token We already discussed Access key is temporary and it is valid up to 120 minutes. If we want a permanent access key we need to create an Facebook app and from there we get the access key. (https://developers.facebook.com/apps/) for more details Here already an YVU App is created with Uid and Secret key Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 12 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permanent Access Token From the above we get App ID and by clicking show button we get App Secret Key. Using fboAuth() method we store key permanently. Example: fb oauth <- fbOAuth (aid=”1702xx”, a secret=”2f9xx”, permissions = T) Storing and loading this in a file: save(fb oauth, file="fb oauth") load("fb oauth") Future we will use fb oauth as an access token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 13 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getUsers() Definition getUsers() retrieves public information about one or more Facebook users and private information of the main User. After version 2.0 of the Facebook API, only id, name, and picture are available through the API. All the remaining fields will be missing. Syntax: getUsers(users, token, private info = FALSE) It extract information like User Id, name, username, first name, middle name, last name, gender, locale, category, likes, picture If we provide private info as TRUE, along with above details it provides birthday , Location, hometown, relationship status etc Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 14 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Public Details of User From Facebook For extracting facebook user details we require ‘Rfacebook’ package and ‘Access Token’ We already get these. Source code require("Rfacebook") load("fb oauth") me< −getUsers("me",token= fb oauth ) me # printing output OUTPUT Id: 57142XXXXX name: PraveenKumar Donta username: NA first name: PraveenKumar middle name: NA last name: Donta gender : male locale : en US category : NA likes : NA picture : NA Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 15 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Private Details of User From Facebook Add private info is TRUE to get the Private details of the User. Source code require("Rfacebook") load("fb oauth") me< −getUsers("me",token= fb oauth,private info=T) me # printing output Output Id: 57142XXXXX name: PraveenKumar Donta username: NA first name: PraveenKumar middle name: NA last name: Donta gender : male locale : en US category : NA likes : NA picture : NA birthday : 04/21/1990 Location : Cumbum, A. P, India hometown : Giddalur relationship status : Single Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 16 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others updateStatus() Definition updateStatus() sends a status update that will be displayed on the Facebook profile of the authenticated user. Syntax: updateStatus(text, token, link = NULL) From above text is a string of message we want to post status. token means Access token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 17 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Update Facebook status with R Source code require("Rfacebook") load("fb oauth") text< −"Hi.. This post is posted from R" updateStatus(text,fb oauth, link = NULL) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 18 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Update Facebook status along with Link with R Source code require("Rfacebook") load("fb oauth") text< −"Hi.. This post is posted from R" link="https://www.youtube.com/ watch?v=Fa9gghVBlk4" updateStatus(text,fb oauth, link) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 19 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getLikes() Definition getLikes() retrieves information about a friend’s likes. To retrieve the number of likes for a page Syntax: getLikes(user, n , fb oauth ) From above user is any valid user id, fb oauth means Access token and ’n’ indicates max number of like you want to retrieve. This method gives output as "id" "names" "website" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 20 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of likes of a Facebook friend Source code require("Rfacebook") load("fb oauth") likes< −getLikes(‘me’, n = 500, token= fb oauth ) table(likes) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 21 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others searchGroup() Definition Use searchGroup() in combination with getGroup to scrape public posts on Facebook groups. Syntax: searchGroup(name, token) From above name is any valid String, token means Access token This method gives output as "name" "privacy" "id" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 22 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of Groups with given string Source code require("Rfacebook") load("fb oauth") name< −"india" groups< −searchGroup(name, fb oauth ) table(groups) Output Name Privacy ID Indian Job Seekers CLOSED 664407993570414 INDIAN PAINT- INGS OPEN 162815470570453 Jobs In India OPEN 655519397913849 IEEE Computer Society - India Council CLOSED 338878412832563 Indian superstar prince mahesh babu fans CLOSED 238349126246139 india OPEN 121233277959929 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 23 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getGroup() Definition getGroup() retrieves information from a public Facebook group. Syntax: getGroup(group id, token, n = 100, since = NULL, until = NULL) From above group id is any valid Id of a open group, token means Access token This method gives output as from id","from name", "message", "created time", , "type", "link", "id" , "likes count", "comments count", "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 24 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of Posts in a open Group Source code require("Rfacebook") load("fb oauth") group id=655519397913849 groupdetails< −getGroup(group id , token=fb oauth, n = 100, since = NULL, until = NULL) groupdetails Output from id: 1700931806812215 from name: Swarna Cherukuri message: http://tollywoodmonkeys.com/jet-airways-walkin- freshers-for-cabin-crew-from-dec-1-to-dec-12/ created time: 2015-12-06T05:22:49+0000 type: link link: http://tollywoodmonkeys.com/jet-airways-walkin- freshers-for-cabin-crew-from-dec-1-to-dec-12/ id: 655519397913849 743777472421374 likes count: 20 comments count: 13 shares count: 3 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 25 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others searchPages() Definition searchPages()retrieves public pages that mention a given keyword Syntax: searchPages(name, token , n) From above name is any valid String, token means Access token and n indicates number of maximum pages retrieve. This method gives output as id, about, category, description, general info, likes, link, city, state, country, latitude, longitude, name, talking about count, username , website Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 26 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Search pages & its information that mention a string Source code require("Rfacebook") load("fb oauth") pages < − searchPages( string="university", token= fb oauth, n=500 ) pages Output Id: 14483644XXX about: Indian Space Research Organization category: Govt. Org. description: Driven by inquisitiveness, Mankinds.... general info:NA likes: 1117479 link: https://www.facebook.com/ISRO/ city: Bangalore state: NA country: India latitude: 13.03825 longitude:77.56492 name: ISRO - Indian Space Research Organisation talking about count: 6378 username: ISRO website: http://www.isro.gov.in Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 27 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getPage() Definition getPage() retrieves information from a public Facebook page. Note that information about users that have turned on the ”follow” option on their profile can also be retrieved with this function Syntax: getPage(page, fb oauth , n = 80, since = NULL, until = NULL, feed = FALSE) From above page is any valid Page id, fb oauth means Access token and n indicates retrieve maximum number of post in a page . This method gives output as "from id" "from name" "message" "created time" "type" "link" "id" "likes count" "comments count" "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 28 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of posts from a public Facebook page Source code require("Rfacebook") load("fb oauth") page< −1448364408720250 pdetails < − getPage(page, fb oauth, n = 10, since = NULL, until = NULL, feed = FALSE) pdetails # printing Output from id: 1448364408720250 from name: ISRO - Indian Space Research Organisation message: A Kannada poem about the NAVIC constellati.... created time: 2016-05-04T05:44:52+0000 type: ”photo” link: https://www.facebook.com/ISRO/photos/a.1448404935382864.1 id: 1448364408720250 1727183020838386 likes count: 672 comments count: 69 shares count: 124 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 29 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getNewsfeed() Definition getNewsfeed() retrieves status updates from the authenticated user’s News Feed Syntax: getNewsfeed(token, n) From above token means Access token (Must be the extended access token) and n indicates number of maximum posts retrieve. This method gives output as "from id", "from name", "to id", "to name", "message" , "created time", "type", "link", "id" , "likes count", "comments count", "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 30 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of posts from a public Facebook page Source code require("Rfacebook") load("fb oauth") news < − getNewsfeed(token=fb oauth) news # printing Output from id: 290897664260544 from name: The BACK Benchers to id: NA to name: NA message: THAT DIFFERENCE... created time: 2016-05-09T12:00:00+0000 type: photo link: https://www.facebook.com/the.../photos/a.715704...1.10737418 id: 290897664260544 1421818854501747 likes count: 46362 comments count: 237 shares count: 8194 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 31 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getPost() Definition getPost() retrieves information about a public Facebook post, including list of comments and likes. Syntax: getPost(post, token, n, comments = TRUE, likes = TRUE, n.likes = n, n.comments = n) From above token means Access token, n indicates number of maximum posts retrieve and post indicates postID. This method gives output as "post", "likes", "comments" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 32 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Likes and Comment details of a Post Source code require("Rfacebook") load("fb oauth") postid="1909681024XX 54558XX" Postdetails < − getPost(postid, fb oauth, n = 10, comments = TRUE, likes = TRUE,n.likes = n, n.comments = n) Postdetails # printing Output id: 1909681024XX 54558XX likes count: 112214 comments count: 1235 share count: 124 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 33 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getFriends() Definition getFriends() retrieves information about the user’s friends. Syntax: getFriends(token, simplify = FALSE) From above token means Access token, simplify If TRUE, function will return only name and id for each friend. If FALSE, it will return additional information from their profiles: gender, birthday, location, hometown, relationship status and profile picture. This function requires the use of a OAuth token with extended permissions and only friends who are using the application (Facebook App) that you used to generate the token to query the API will be returned. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 34 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Friends Information Source code require("Rfacebook") load("fb oauth") my friends < − getFriends(token=fb oauth, simplify = TRUE) my friends # printing output Output Currently no user accessing App. so No output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 35 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Facebook Profile Picture Extraction If we want to extract facebook profile picture we need httr package along with Rfacebook it is also installed. In this package we have to use two function: GET() and content() to extract the image. Syntax of GET(): GET(url = NULL, config = list(), ..., handle = NULL) Syntax of content(): content(x, as = NULL, type = NULL, encoding = NULL, ...) We get URL of profile picture from Graph API tool https://graph.facebook.com/me/picture?fields=url,redire Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 36 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Profile Picture from Facebook Source code query < − ’https://graph.facebook.com/me /picture? fields= url,redirect=FALSE’ z = GET(query, config=fb oauth) z1 = content(z) z1<-as.Image(z1) # Convert raw data to image image(rotate(z1,-90)) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 37 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Extract All Images of Authenticated User at a time library(Rfacebook) library(RImageJROI) library(EBImage) query< −"https://graph.facebook.com/v2.6/me?fields=photos.limit(100)% 7Bpicture%7D&access token=EAACEdEose0cBANsOCg0ufGUQaESdpwEyYs4vG" z< −callAPI(query, fb oauth) library("tm") MC tokenizer(z[1][1]$photos[1][[1]]) scan tokenizer(z[1][1]$photos[1][[1]]) strsplit space tokenizer < − function(x) unlist(strsplit(as.String(x), " ")) z4< −strsplit space tokenizer(z[1][1]$photos[1][[1]]) z5< −matrix(z4, ncol = 4, byrow = TRUE) detach("package:tm", unload=TRUE) for(i in 1:100){ query< −z5[i,2] z< −GET(query, config=fb oauth) z1< − as.Image(content(z)) z1< −image(rotate(z1,-90)) } Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 38 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Output of all images Display all images one on another. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 39 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Other Functions in Rfacebook Package Following packages are not working in current version of Graph API Tool due to security& privacy issue. getCheckins() retrieves information about a friend’s checkins getInsights() Extract Insights metric from a Facebook page (admin role required) getFQL() connects to Facebook’s Graph API and executes a FQL query. searchFacebook() retrieves public status updates that mention a given keyword Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 40 / 41
Outline Introduction Permissions User Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others thank You Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 41 / 41

Facebook data analysis using r

  • 1.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Facebook Data Analytics using R Dr. C. Naga Raju Associate Professor & Head Praveen Kumar D Research Scholar Department of Computer Science & Engineering YSREC of Yogi Vemana University, Proddatur Kadapa Dt., A. P, India July 29, 2016 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 1 / 41
  • 2.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others 1 Introduction 2 Get permissions from facebook 3 Extract Facebook user details with R 4 Update Facebook status with R 5 Extract list of likes of a Facebook friend 6 Search a Group in Facebook with R 7 Search pages that mention a string 8 Extract Recent Posts from the Authenticated user’s newsfeed 9 Extract a post details 10 Extract List of Friends with their Information 11 Extract Facebook Picture of Authenticated User 12 Other Functions in Rfacebook Package Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 2 / 41
  • 3.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Requirements If we want to analyze the facebook data with R following are require ’Rfacebook’, ’RCrul’ packages in R language Permissions to access facebook data Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 3 / 41
  • 4.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Installation & Importing of Rfacebook In R programming we install packages by using install.packages(”Package Name”) function. i.e install.packages(”Rfacebook”) install.packages(”RCrul”) Load Rfacebook & RCrul packages in R using following code require(”Rfacebook”) or library(”Rfacebook”) require(”RCrul”) or library(”RCrul”) Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 4 / 41
  • 5.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Graph API Explore If we want to access the facebook data we must have the facebook account. For accessing facebook data we used one tool it is Graph API Explore available in www.facebook.com with provided link: https://developers.facebook.com/tools/explorer Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 5 / 41
  • 6.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Graph API Explore Screen shot Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 6 / 41
  • 7.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Obtaining Access Token When someone connects with an app using Facebook Login, the app will be able to obtain an access token which provides temporary, secure access to Facebook APIs. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 7 / 41
  • 8.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permission from Facebook We get permission from facebook by using Graph API Explore by Click on Get Token button, When we click on Get token following screen will display: Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 8 / 41
  • 9.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Select the Required Permission from Facebook Choose what kind of facebook data you need to access and click on Get Access Token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 9 / 41
  • 10.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Check Authentication from Facebook It will ask login you are not logged in. Other wise it ask few options like change access permission of logged user and also shown what permissions it allow to analysis. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 10 / 41
  • 11.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Access Token from Graph API Tool Finally it will generate Access token. Copy access token for further accessing in R language. That access token valid only 2 hours. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 11 / 41
  • 12.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permanent Access Token We already discussed Access key is temporary and it is valid up to 120 minutes. If we want a permanent access key we need to create an Facebook app and from there we get the access key. (https://developers.facebook.com/apps/) for more details Here already an YVU App is created with Uid and Secret key Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 12 / 41
  • 13.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Get Permanent Access Token From the above we get App ID and by clicking show button we get App Secret Key. Using fboAuth() method we store key permanently. Example: fb oauth <- fbOAuth (aid=”1702xx”, a secret=”2f9xx”, permissions = T) Storing and loading this in a file: save(fb oauth, file="fb oauth") load("fb oauth") Future we will use fb oauth as an access token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 13 / 41
  • 14.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getUsers() Definition getUsers() retrieves public information about one or more Facebook users and private information of the main User. After version 2.0 of the Facebook API, only id, name, and picture are available through the API. All the remaining fields will be missing. Syntax: getUsers(users, token, private info = FALSE) It extract information like User Id, name, username, first name, middle name, last name, gender, locale, category, likes, picture If we provide private info as TRUE, along with above details it provides birthday , Location, hometown, relationship status etc Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 14 / 41
  • 15.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Public Details of User From Facebook For extracting facebook user details we require ‘Rfacebook’ package and ‘Access Token’ We already get these. Source code require("Rfacebook") load("fb oauth") me< −getUsers("me",token= fb oauth ) me # printing output OUTPUT Id: 57142XXXXX name: PraveenKumar Donta username: NA first name: PraveenKumar middle name: NA last name: Donta gender : male locale : en US category : NA likes : NA picture : NA Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 15 / 41
  • 16.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Private Details of User From Facebook Add private info is TRUE to get the Private details of the User. Source code require("Rfacebook") load("fb oauth") me< −getUsers("me",token= fb oauth,private info=T) me # printing output Output Id: 57142XXXXX name: PraveenKumar Donta username: NA first name: PraveenKumar middle name: NA last name: Donta gender : male locale : en US category : NA likes : NA picture : NA birthday : 04/21/1990 Location : Cumbum, A. P, India hometown : Giddalur relationship status : Single Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 16 / 41
  • 17.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others updateStatus() Definition updateStatus() sends a status update that will be displayed on the Facebook profile of the authenticated user. Syntax: updateStatus(text, token, link = NULL) From above text is a string of message we want to post status. token means Access token Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 17 / 41
  • 18.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Update Facebook status with R Source code require("Rfacebook") load("fb oauth") text< −"Hi.. This post is posted from R" updateStatus(text,fb oauth, link = NULL) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 18 / 41
  • 19.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Update Facebook status along with Link with R Source code require("Rfacebook") load("fb oauth") text< −"Hi.. This post is posted from R" link="https://www.youtube.com/ watch?v=Fa9gghVBlk4" updateStatus(text,fb oauth, link) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 19 / 41
  • 20.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getLikes() Definition getLikes() retrieves information about a friend’s likes. To retrieve the number of likes for a page Syntax: getLikes(user, n , fb oauth ) From above user is any valid user id, fb oauth means Access token and ’n’ indicates max number of like you want to retrieve. This method gives output as "id" "names" "website" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 20 / 41
  • 21.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of likes of a Facebook friend Source code require("Rfacebook") load("fb oauth") likes< −getLikes(‘me’, n = 500, token= fb oauth ) table(likes) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 21 / 41
  • 22.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others searchGroup() Definition Use searchGroup() in combination with getGroup to scrape public posts on Facebook groups. Syntax: searchGroup(name, token) From above name is any valid String, token means Access token This method gives output as "name" "privacy" "id" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 22 / 41
  • 23.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of Groups with given string Source code require("Rfacebook") load("fb oauth") name< −"india" groups< −searchGroup(name, fb oauth ) table(groups) Output Name Privacy ID Indian Job Seekers CLOSED 664407993570414 INDIAN PAINT- INGS OPEN 162815470570453 Jobs In India OPEN 655519397913849 IEEE Computer Society - India Council CLOSED 338878412832563 Indian superstar prince mahesh babu fans CLOSED 238349126246139 india OPEN 121233277959929 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 23 / 41
  • 24.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getGroup() Definition getGroup() retrieves information from a public Facebook group. Syntax: getGroup(group id, token, n = 100, since = NULL, until = NULL) From above group id is any valid Id of a open group, token means Access token This method gives output as from id","from name", "message", "created time", , "type", "link", "id" , "likes count", "comments count", "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 24 / 41
  • 25.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of Posts in a open Group Source code require("Rfacebook") load("fb oauth") group id=655519397913849 groupdetails< −getGroup(group id , token=fb oauth, n = 100, since = NULL, until = NULL) groupdetails Output from id: 1700931806812215 from name: Swarna Cherukuri message: http://tollywoodmonkeys.com/jet-airways-walkin- freshers-for-cabin-crew-from-dec-1-to-dec-12/ created time: 2015-12-06T05:22:49+0000 type: link link: http://tollywoodmonkeys.com/jet-airways-walkin- freshers-for-cabin-crew-from-dec-1-to-dec-12/ id: 655519397913849 743777472421374 likes count: 20 comments count: 13 shares count: 3 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 25 / 41
  • 26.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others searchPages() Definition searchPages()retrieves public pages that mention a given keyword Syntax: searchPages(name, token , n) From above name is any valid String, token means Access token and n indicates number of maximum pages retrieve. This method gives output as id, about, category, description, general info, likes, link, city, state, country, latitude, longitude, name, talking about count, username , website Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 26 / 41
  • 27.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Search pages & its information that mention a string Source code require("Rfacebook") load("fb oauth") pages < − searchPages( string="university", token= fb oauth, n=500 ) pages Output Id: 14483644XXX about: Indian Space Research Organization category: Govt. Org. description: Driven by inquisitiveness, Mankinds.... general info:NA likes: 1117479 link: https://www.facebook.com/ISRO/ city: Bangalore state: NA country: India latitude: 13.03825 longitude:77.56492 name: ISRO - Indian Space Research Organisation talking about count: 6378 username: ISRO website: http://www.isro.gov.in Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 27 / 41
  • 28.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getPage() Definition getPage() retrieves information from a public Facebook page. Note that information about users that have turned on the ”follow” option on their profile can also be retrieved with this function Syntax: getPage(page, fb oauth , n = 80, since = NULL, until = NULL, feed = FALSE) From above page is any valid Page id, fb oauth means Access token and n indicates retrieve maximum number of post in a page . This method gives output as "from id" "from name" "message" "created time" "type" "link" "id" "likes count" "comments count" "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 28 / 41
  • 29.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of posts from a public Facebook page Source code require("Rfacebook") load("fb oauth") page< −1448364408720250 pdetails < − getPage(page, fb oauth, n = 10, since = NULL, until = NULL, feed = FALSE) pdetails # printing Output from id: 1448364408720250 from name: ISRO - Indian Space Research Organisation message: A Kannada poem about the NAVIC constellati.... created time: 2016-05-04T05:44:52+0000 type: ”photo” link: https://www.facebook.com/ISRO/photos/a.1448404935382864.1 id: 1448364408720250 1727183020838386 likes count: 672 comments count: 69 shares count: 124 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 29 / 41
  • 30.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getNewsfeed() Definition getNewsfeed() retrieves status updates from the authenticated user’s News Feed Syntax: getNewsfeed(token, n) From above token means Access token (Must be the extended access token) and n indicates number of maximum posts retrieve. This method gives output as "from id", "from name", "to id", "to name", "message" , "created time", "type", "link", "id" , "likes count", "comments count", "shares count" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 30 / 41
  • 31.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract list of posts from a public Facebook page Source code require("Rfacebook") load("fb oauth") news < − getNewsfeed(token=fb oauth) news # printing Output from id: 290897664260544 from name: The BACK Benchers to id: NA to name: NA message: THAT DIFFERENCE... created time: 2016-05-09T12:00:00+0000 type: photo link: https://www.facebook.com/the.../photos/a.715704...1.10737418 id: 290897664260544 1421818854501747 likes count: 46362 comments count: 237 shares count: 8194 Complete output in a text file: ClickHere Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 31 / 41
  • 32.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getPost() Definition getPost() retrieves information about a public Facebook post, including list of comments and likes. Syntax: getPost(post, token, n, comments = TRUE, likes = TRUE, n.likes = n, n.comments = n) From above token means Access token, n indicates number of maximum posts retrieve and post indicates postID. This method gives output as "post", "likes", "comments" Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 32 / 41
  • 33.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Likes and Comment details of a Post Source code require("Rfacebook") load("fb oauth") postid="1909681024XX 54558XX" Postdetails < − getPost(postid, fb oauth, n = 10, comments = TRUE, likes = TRUE,n.likes = n, n.comments = n) Postdetails # printing Output id: 1909681024XX 54558XX likes count: 112214 comments count: 1235 share count: 124 Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 33 / 41
  • 34.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others getFriends() Definition getFriends() retrieves information about the user’s friends. Syntax: getFriends(token, simplify = FALSE) From above token means Access token, simplify If TRUE, function will return only name and id for each friend. If FALSE, it will return additional information from their profiles: gender, birthday, location, hometown, relationship status and profile picture. This function requires the use of a OAuth token with extended permissions and only friends who are using the application (Facebook App) that you used to generate the token to query the API will be returned. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 34 / 41
  • 35.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Friends Information Source code require("Rfacebook") load("fb oauth") my friends < − getFriends(token=fb oauth, simplify = TRUE) my friends # printing output Output Currently no user accessing App. so No output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 35 / 41
  • 36.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Facebook Profile Picture Extraction If we want to extract facebook profile picture we need httr package along with Rfacebook it is also installed. In this package we have to use two function: GET() and content() to extract the image. Syntax of GET(): GET(url = NULL, config = list(), ..., handle = NULL) Syntax of content(): content(x, as = NULL, type = NULL, encoding = NULL, ...) We get URL of profile picture from Graph API tool https://graph.facebook.com/me/picture?fields=url,redire Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 36 / 41
  • 37.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Example to Extract Profile Picture from Facebook Source code query < − ’https://graph.facebook.com/me /picture? fields= url,redirect=FALSE’ z = GET(query, config=fb oauth) z1 = content(z) z1<-as.Image(z1) # Convert raw data to image image(rotate(z1,-90)) Output Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 37 / 41
  • 38.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Extract All Images of Authenticated User at a time library(Rfacebook) library(RImageJROI) library(EBImage) query< −"https://graph.facebook.com/v2.6/me?fields=photos.limit(100)% 7Bpicture%7D&access token=EAACEdEose0cBANsOCg0ufGUQaESdpwEyYs4vG" z< −callAPI(query, fb oauth) library("tm") MC tokenizer(z[1][1]$photos[1][[1]]) scan tokenizer(z[1][1]$photos[1][[1]]) strsplit space tokenizer < − function(x) unlist(strsplit(as.String(x), " ")) z4< −strsplit space tokenizer(z[1][1]$photos[1][[1]]) z5< −matrix(z4, ncol = 4, byrow = TRUE) detach("package:tm", unload=TRUE) for(i in 1:100){ query< −z5[i,2] z< −GET(query, config=fb oauth) z1< − as.Image(content(z)) z1< −image(rotate(z1,-90)) } Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 38 / 41
  • 39.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Output of all images Display all images one on another. Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 39 / 41
  • 40.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others Other Functions in Rfacebook Package Following packages are not working in current version of Graph API Tool due to security& privacy issue. getCheckins() retrieves information about a friend’s checkins getInsights() Extract Insights metric from a Facebook page (admin role required) getFQL() connects to Facebook’s Graph API and executes a FQL query. searchFacebook() retrieves public status updates that mention a given keyword Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 40 / 41
  • 41.
    Outline Introduction PermissionsUser Details Status Likes Groups Pages NewsFeed Posts Friends Picture Others thank You Yogi Vemana University, Proddatur, Kadapa Facebook Data Analytics using R July 29, 2016 Slide: 41 / 41