源起
前一陣子為了蒐集資料,花了一點時間研究如何在不寫程式的情況下,取得臉書社團或粉絲團中誰按了「讚」。也許有人會問,知道這個要做啥?以學術的觀點來看,瞭解誰看了誰的臉書文章,或誰對誰的臉書文章按「讚」,可以描繪出這群人的「社交網路」圖,從中看出臉書好友關係的親疏遠近。所以這些資料對社會學、教育方面的研究是非常有用的。
但是,這些資料實在不好取得。首先,目前臉書對於使用者隱私非常注重,如果想利用寫程式來取得這些資料,需要向臉書申請 App 權限。但像我們只是臨時要資料的人來說,申請過程要附的證明資訊,我們都不會有,所以這條路不行。另外,我們可以透過臉書提供的 Graph API 及 FQL(類似 SQL)來取得資料,但過程中需要取得 Access Token(類似授權 App ID 可擷取資料)。如果要以寫程式的方式取得,前提是要架一個網站。但只是想暫時取得資料的話,這又太過於麻煩。
所以,為了避免這些麻煩事,我花了些時間研究如何在不寫程式的情況下,也可以擷取到臉書粉絲團或社團文章按「讚」的使用者名單。中間的步驟可能有些繁雜,但對於程式功力不強(或沒有),但又想取得資料的人,不失為一個可行的方式。
在開始之前
在開始進行教學之前,請先確認以下幾件事:
- 已經註冊了臉書的開發人員,並且申請了一個 App ID。
- 你是粉絲團或社團的管理者。
確認了這些事項後,就可以進行以下的步驟了。
步驟
登入臉書
首先先開啟瀏覽器,登入您的臉書。
連線到 Graph API Explorer
在同一個瀏覽器中,開啟新的分頁,然後在新分頁中輸入以下的網址:https://developers.facebook.com/tools/explorer/,接下 Enter 鍵之後,應該會看到以下的畫面:
Graph API Explorer 主畫面 |
選取作業用的 App ID
在 Graph API Explorer 視窗右上角的「Application」下拉選單中,選擇要用來取得資料的 App ID 名稱(在本例中是選擇「彼得潘老飛俠」)。
選擇要用來取得資料的 App ID |
取得 User Access Token
選取了取得資料的 App ID 之後, 請點選下方的「Get Token」選單,然後選取「Get User Access Token」,以取得授權。
選取「Get User Access Token」,以取得授權 |
選取「Get User Access Token」之後,會出現「Select Permission」對話方塊,其中會列出 App 的資料存取授權範圍。基本上不用更改,只要確認「User_Managed_Groups」選項有勾選即可。確認完畢後,請按下方的「Get Access Token」按鈕,就可以取得 Access Token。
確認 App 的權限 |
取得粉絲專頁或社團 ID
取得 App 的授權後,接著我們要取得的是臉書粉絲專頁或社團的 ID。臉書會提供粉絲團或社團一個專頁編號,但兩者取得的方式不同。在「粉絲專頁」中,請點選「關於」。
此時會出現「專頁資訊」,請把此頁捲到最下面,會出現「Facebook 專頁編號」,請記錄此編號,等下會用到。
接下來我們就要開始擷取粉絲專頁或社團中,誰針對文章按了「讚」。首先,請在 Graph API Explorer 中,點選「Access Token:」下方的「Graph API」,此時,你會看到在「Graph API」的下方,有一行字:「GET ->/v2.5/me?fileds=id,name」。這一行字就是我們要用來下查詢指令的區域。
如果您未修改預設指令,直接按了右邊的「Submit」按鈕,在下方結果區域的左邊就會出現查詢的欄位,右邊會出現以 JSON 格式呈現的查詢結果。這個指令代表的是查詢您個人(me)的臉書 ID(id)及姓名(name)資訊。(Node 及 Field 所代表的意義請看 Graph API 說明文件)。
點選「粉絲團」中的「關於」 |
此時會出現「專頁資訊」,請把此頁捲到最下面,會出現「Facebook 專頁編號」,請記錄此編號,等下會用到。
粉絲專頁的 ID |
而「社團」ID 取得方式又不同,當您點選某一個臉書社團時,在網址列中會出現以下的網址:https://www.facebook.com/groups/xxxxxxxxxxxxxxx/ (x 是代表數字)。在 「groups」後面的一串數字,就是「社團」ID。如果您是想擷取社團的資料,請記錄這串 ID,稍後會用到。
「groups」後面的那串數字就是「社團 ID」 |
取得粉絲專頁或社團資訊
接下來我們就要開始擷取粉絲專頁或社團中,誰針對文章按了「讚」。首先,請在 Graph API Explorer 中,點選「Access Token:」下方的「Graph API」,此時,你會看到在「Graph API」的下方,有一行字:「GET ->/v2.5/me?fileds=id,name」。這一行字就是我們要用來下查詢指令的區域。
這一行可以用來下查詢指令 |
如果您未修改預設指令,直接按了右邊的「Submit」按鈕,在下方結果區域的左邊就會出現查詢的欄位,右邊會出現以 JSON 格式呈現的查詢結果。這個指令代表的是查詢您個人(me)的臉書 ID(id)及姓名(name)資訊。(Node 及 Field 所代表的意義請看 Graph API 說明文件)。
查詢欄位與查詢結果的呈現 |
因此,我們要查詢粉絲專頁或社團的文章有誰按讚的話,就要用到剛剛記錄下來的粉絲專頁或社團 ID。所以,請先清除查詢指令中的「me?fileds=id,name」,然後貼上粉絲專頁或社團 ID,按下「Submit」按鈕,查詢結果就會出現在畫面右方。(見下圖):
以社團 ID 來查詢社團的基本資訊 |
在本例中是用某個私密性社團的 ID 來查詢,左方查詢條件的框框中會出現「Node:1592115xxxxx」,表示我們現在查詢的是 Node ID 為「1592115xxxxx」的資訊;右方則是這個Node(社團)的基本資訊,包含了三個欄位資訊:
- name:粉絲專頁或社團名稱
- privacy:社團的隱私設定(粉絲專頁無此欄位)。「CLOSED」表示是私密性社團。
- id:粉絲專頁或社團 ID。
取得了社團的基本資訊之後,我們就可以開始取得每一篇貼文有誰按讚。
取得貼文按讚人數
接續剛剛的例子,我們可以加入搜尋的欄位,來找出有誰在貼文上按讚。在左方查詢條件的框框中,可以看到有「+ Search for a field」的選項。我們可以點選「+」,會出現條件的下拉式選單,因為我們要查的是貼文有誰按讚,在 Graph API 中,「feed」就是代表貼文,所以請在選單中選取「feed」。
先選擇代表貼文的「feed」 |
接下來在「feed」的下一層中,再加入「likes」(讚〉這個條件,加入後按下「Submit」按鈕執行查詢。
在「feed」下面再加入「likes」的條件 |
查詢的結果如圖。我們可以看到紅框中的資料,表示這是有人按讚的貼文。其中最外層的「id」,是代表貼文的 id,「likes」以下大括號內的資料,以兩個欄位(id, name)為一組,代表按讚使用者的 ID(id)及姓名(name)。
查詢結果,可以看到哪些使用者按「讚」 |
如果您的粉絲專頁或社團的貼文數量太多,Graph API 會以 25 篇貼文為一個單位顯示資料。 您可以加入「limit」這個修飾字,設定一次要顯示的資料筆數,再按「Submit」按鈕(如下圖,在此例中設定為一次顯示 500 筆貼文),右邊就會顯示 500 筆的貼文資料。
加入「limit」修飾字,並修改括號中的數字,可調整每次查詢所顯示的資料筆數。 |
將 JSON 查詢結果轉換成 CSV 格式
前面我們有提到,查詢結果是以 JSON 格式顯示,如果我們要利用這些資料,例如匯入資料庫以供查詢、進行社群網路研究等,必須轉換資料格式。在本例中,我們將利用網路上的免費工具,將 JSON 格式轉換成 CSV 檔,供微軟的 Excel 讀取。
首先,請先開啟這個轉換的網站:https://json-csv.com/,只要您的轉換資料容量小於 1MB,這個網站可以免費幫您轉換,超過 1MB 以上就要付費了。
將 JSON 格式的資料轉換為 CSV 的網站 |
接著,按下畫面右側的齒輪圖示,在「Setting」畫面中,在「nested data」下拉式選單中,選擇「matrix style」,然後按「Close」關閉。
修改「巢狀資料」的處理方式 |
設定完成後, 請複製在 Graph API Explorer 中的查詢結果,將其貼到轉換網站的轉換區域內。
將查詢結果貼到轉換區域內 |
結果就會出現在網站下方,您可以直接按上方的「Download」按鈕下載這個 CSV 檔:
轉換之後的結果 |
CSV 檔內容:
直接用 Excel 開啟 csv 檔 |
到此就大功告成了!
結語
透過 Graph API Explorer,可以取得臉書粉絲專頁及社團的資料,例如文章內容、按讚人數、成員清單等,對於有需要利用臉書資料進行研究,但對程式設計一竅不通的人來說,這種方式是比較容易的。如果想要進一步瞭解 Graph API 的功能,可以參考臉書的 Graph API 文件,會有更詳細的說明。如果您對本文內容中的任何步驟有疑問的話,歡迎留言喲!