這裡介紹 R 的 Rfacebook 套件使用方式,並提供各種 Facebook 社群網路資料分析的參考範例。
Facebook 是全球知名的社群網站,上面有非常大量的社群網路資料,當然也蘊藏了龐大的商機,如何分析 facebook 的資料、從中萃取有用的資訊,已經成為現在很熱門的領域之一。
分析 facebook 的資料,除了一般的統計工具之外,還需要結合 Facebook Graph API 來擷取資料,很慶幸的是 R 官方收錄的 Rfacebook 已經將這些功能都已經整合好了,以下我們將介紹如何安裝以及使用這個套件,分析出各種有用的社群資訊。
取得 Facebook 權限認證
在使用 Facebook Graph API 之前,我們必須先取得 facebook 的權限認證,經過認證之後,才能從 facebook 網站上擷取資料。
facebook 提供的認證方式有兩種,一種是使用 facebook app 的方式,另一種則是直接產生一個暫時的存取權杖(token),不管使用那一種都可以。
建立 Facebook App
以下是建立一個 facebook app 的操作步驟。
Step 1
開啟 facebook for developers 的網頁,點選「新增應用程式」。
Step 2
選擇「網站」這個平台。
Step 3
輸入 App 的名稱,這裡任意取一個名稱即可。
Step 4
輸入聯絡用的電子郵件信箱。
Step 5
點選右上角的「Skip Quick Start」。
Step 6
點選應用程式密鑰的「顯示」按鈕。
Step 7
複製應用程式的編號與密鑰。
有了應用程式的編號與密鑰,我們就可以使用 Rfacebook 套件透過 Facebook Graph API 來取的 facebook 上的資料了。
取得 Facebook 存取權杖(Token)
除了使用應用程式的編號與密鑰之外,還有另外一種認證方式就是使用 facebook 存取權杖(token),這種方式就不需要建立 facebook app,只要從網頁上產生存取權杖代碼即可使用,不過他的時效只有兩小時,過期後就要重新產生。
Step 1
點選「Get User Access Token」。
Step 2
選擇要開放的權限。
Step 3
複製產生的存取權杖代碼。
安裝 Rfacebook 套件
R 的 Rfacebook 套件安裝方式有兩種,最簡單的方式就是跟一般套件一樣從 R 官方的套件庫下載安裝,不過這種方式所安裝的版本有時候比較舊,若要安裝最新的版本,可以改用直接從 Rfacebook 的 GitHub 網站上下載最新的版本來安裝。
從 CRAN 安裝
若要從 R 官方的 CRAN 網站安裝,就執行:
install.packages("Rfacebook")
從 GitHub 安裝
若要從 GitHub 下載最新版的 Rfacebook,首先需要先安裝 devtools
:
install.packages("devtools") library(devtools)
接著使用 install_github
安裝 Rfacebook
:
install_github("Rfacebook", "pablobarbera", subdir="Rfacebook") library(Rfacebook)
Rfacebook 認證設定
使用 Facebook 存取權杖(Token)
從 facebook 的 Graph API 測試工具的網頁上產生一個存取權杖(token),將其複製之後,放在 R 的 token
變數中:
token <- "EAACEdEose0cBANAjh3xCYmHWoQPi9MZBZCuIyLBOvsCtH71vTnndd5NsIeSvy5UU1DSSxCYjX8pWIOvRBid6lWOwYwhAxDzZA3dnsbRadtj3FZCaHfpBndc8ae911Wp0pR5GPoq3ZAa5AWooIe34aYkVmkvBHRFt1n44kbWJNywZDZD"
有了存取權杖之後,就可以使用 Rfacebook 來擷取 facebook 網站上的資料了:
me <- getUsers("me", token, private_info = TRUE) me$name
[1] "Guo-Zhao Wang"
使用 Facebook 應用程式編號與密鑰
使用 fbOAuth
函數,配合上面複製的應用程式編號與密鑰,即可獲取可長期使用的 OAuth 授權 token:
require("Rfacebook") fb.oauth <- fbOAuth( app_id="1675426256053176", app_secret="216739d2688d42b4d1d1d901fa4cbbc4", extended_permissions = TRUE)
Copy and paste into Site URL on Facebook App Settings: http://localhost:1410/ When done, press any key to continue...
將這裡的網址 http://localhost:1410/
複製起來,開啟 facebook app 的網頁,在「設定」頁面中,點選「新增平台」。
選擇「網站」。
將剛剛複製的網址貼在「網站網址」欄位中。
按下任意鍵,等待瀏覽器進行認證:
Waiting for authentication in browser... Press Esc/Ctrl + C to abort Authentication complete. Authentication successful.
認證完成後,測試是否可以正常擷取資料:
me <- getUsers("me",token=fb.oauth) me$name
[1] "Guo-Zhao Wang"
將這個 token 儲存起來,以備未來使用:
save(fb.oauth, file="fb_oauth")
未來在使用前,只要使用 load
載入這個 token 就可以直接使用:
load("fb_oauth")
繼續閱讀: 12
CCY
你好
想請問設定完畢後,上面那些指令都是KEY在R語言上嗎?
感恩
G. T. Wang
是的。
jun
你好,請問如果想抓某一個時間片段裡的粉專內容
該怎麼寫比較好?
謝謝
簡嘉宏
你好,請問一下為何我會找不到 metric
我跑aggregate.metric<-function(metric){m<-aggregate(page[[paste0(metric,"_count")]], list(month=page$month), mean)} 這部分沒有錯誤
可是沒有出現 m ,R找不到她
於是我單獨跑
m<-aggregate(page[[paste0(metric,"_count")]], list(month=page$month), mean)
出現metric
非常謝謝您的教學,非常有用
Ken
不好意思我想請問一下 ,是自己的管理的社團才能分析嗎 ?別人未公開的社團是否也可以分析呢 ?
CN
請問:在 R STUDIO輸入完金鑰後,進行瀏覽器認證,但是出現Authentication complete.
Error in oauth2.0_access_token(endpoint, app, code = code, user_params = user_params, :
Bad Request (HTTP 400). Failed to get an access token.
我看了很多資料,都沒看懂如何解決,您能幫忙說明嗎?謝謝