Tag Archives: facebook

[Python教學] Facebook圖形API測試工具,取得粉絲頁按讚數

作者/攝影 曾吉弘
時間  2小時
成本
難度 * * * *
材料表
  • 個人電腦
  • Facebook帳號

本文要介紹如何使用Facebook的圖形API測試工具(Graph API explorer) 取得粉絲頁的相關資料,最常見的應用就是讚數。如果喜歡的話,還可以結合Arduino作出有趣的互動裝置,例如以下:

(註:本影片僅為示意,並非使用Python來取得資料)

 

Facebook開發者平台與圖形API測試工具頁面

請到Facebook開發者網站(請用您原本的Facebook帳號登入即可),在網頁最下面找到 圖形API測試工具(Graph API explorer)。您可以在此查詢您個人的所有資料,查詢結果會以 json 格式回傳,下圖是阿吉老師的Facebook Id 與使用者姓名的查詢結果:

(圖形API語法詳細文件請點我)

請點選畫面右上角的下拉式選單,找到您所要查找的粉絲專頁(您得是該專頁的管理員才行),例如本範例的CAVE教育團隊。下圖查詢了四個項目:id、name、fan_count(讚數)與link。您當然可以查詢其他欄位,只要有輸入資料都可以查得到。

以往的做法是比較寬鬆的,不需要AccessToken,且只需要把粉絲頁超連結www改為graph即可,但現在已經都需要從圖形API測試工具取得才行,這也暗示了您需得是該粉絲頁的管理員才可查找。並且AccessToken會在兩小時之內過期。網路上介紹如何取得永久有效的AccessToken,但不在本篇討論範圍之內。

Python程式碼

 

最後請看一下本範例的Python程式碼,

阿吉碎碎念:Facebook相關的API改動非常快,例如2.6之前,fan_count 原本是叫做 likes。其他雲服務也會常常改,但真的Facebook最愛改就是了,可能和創辦人個性有關吧~

 

本範例的關鍵URL由以下四個項目組成:

  1. facebook api 網址:https://graph.facebook.com/v2.10/
  2. 粉絲頁id:148248725246010 (CAVEr教育團隊)
  3. 要查找的欄位:?fields=id,name,fan_count,link&access_token=
  4. Access token:請由Facebook API圖形API測試工具

 

當然,其他程式語言如C#、Node.js 甚至App Inventor等都可以做到本範例的效果,您可以在取得資料之後直接使用瀏覽器來測試,只要看到以下畫面就是ok的:

 

https://graph.facebook.com/v2.10/148248725246010?fields=id,name,fan_count,link&access_token=XXX

 

FB API 2.10

 

#22是您要查詢的Facebook帳號或粉絲專頁ID。#23則是Access Token

#04是自訂的函式來處理Facebook API回傳的JSON格式結果。

#24~26 則是依序顯示出我們所要查詢的欄位,執行畫面如下圖:

import urllib2
import json

def get_page_data(page_id,access_token):
    api_endpoint = "https://graph.facebook.com/v2.10/"
    fb_graph_url = api_endpoint+page_id+"?fields=id,name,fan_count,link&access_token="+access_token
    try:
        api_request = urllib2.Request(fb_graph_url)
        api_response = urllib2.urlopen(api_request)
        
        try:
            return json.loads(api_response.read())
        except (ValueError, KeyError, TypeError):
            return "JSON error"

    except IOError, e:
        if hasattr(e, 'code'):
            return e.code
        elif hasattr(e, 'reason'):
            return e.reason

page_id = "148248725246010" # username or id
token = "XXXXX"  # Access Token
page_data = get_page_data(page_id,token)

print "Page Name:"+ page_data['name']
print "Likes:"+ str(page_data['fan_count'])
print "Link:"+ page_data['link']

 

相關文章:

[物聯網 分享教學 ]2017版Arduino Yun 自動發布 Facebook 個人動態 – 使用 Temboo

本文要告訴您如何使用 Temboo 網站,讓您的 Arduino Yun (或其他相容開發板) 可以自動或根據某些條件發布 Facebook 動態。

本文修改自2015版的[Temboo – Arduino yun 發佈 Facebook 個人動態]一文,因為 Temboo 與 Facebook 在相關認證上的作法皆有調整。

作者/攝影  曾吉弘
時間  3~4小時
成本Arduino Yun 開發板 = $2500 購買連結
難度  *
材料表 ❊個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)

Arduino IDE 1.0 版以上,可上傳程式到 Arduino yun 即可,本範例使用 1.6

Arduino Yun 開發板

 

Temboo 是一個好用的社群網路互動網站,您可利用 Temboo 的各種函式庫來上傳資料到 Google spreadsheet、發送 Gmail 以及上傳 webcam 照片到 Dropbox 等功能。Temboo 有免費也有付費的帳號。請參閱本團隊翻譯的[實戰物聯網開發:使用Arduino Yun] 這本書中有許多有趣的範例。

 

接著就一起來操作吧!

 

Temboo 端

1.請到 Temboo網站申請一個帳號,登入之後請點選畫面右上角您的帳戶名稱,於下拉式選單中點選 Applications,進入應用程式畫面。在此的 Application 是指一個用來與 Facebook 互動的外部程式,我們需要把他與後續建立的 Facebook app 兩者打通。

 

2.在Applications 頁面中,點選 New Application 建立一個應用程式,在此取名為 myFirstApp,完成之後會看到 KEY。

Facebook 端

3. 接著請到 Facebook 開發者網站,請用您原本的 Facebook 帳號登入即可。點選右上角的個人大頭照,於下拉式選單中找到[新增應用程式]。這是 Facebook 應用程式,不要和 temboo 應用程式搞混了!

新增完成之後,會看到應用程式編號與密鑰,這後續都要填在 Temboo 中。


4. 同一個頁面下,左側,設定 ➜ 新增平台 ➜ 網站 ➜ 填入這個網址https://xxx.temboolive.com/callback/    紅字xxx.為您的 temboo 帳戶名稱,完成如下(記得儲存變更)

又回到Temboo

5. 在Temboo 的 InitializeOAuth頁面填入 Facebook 應用程式 ID,scope欄位請填入 “publish_actions” 代表要發布個人動態。完成後點選 RUN,會在頁面下方產生一個認證網址,請點選它   

6. 這是 Facebook 詢問您,是否同意這個外部程式取得相關權限,您在玩一些 Facebook 小遊戲或是 [誰在暗戀你] 這種隨機算命程式時都會看到這個畫面。不過一般來說,通常我們也沒有特別注意就按確定了,沒錯吧?

有關各式權限的補充:https://developers.facebook.com/docs/facebook-login/permissions/

7. 在 Temboo FinalizeOAauth 頁面輸入Facebook 的AppID, AppSecret 與 CallbackID,Run ➜ 終於取得 accesss token

8.回到 Temboo Facebook setStatus 頁面發布個人狀態 ➜ Run。您也可以透過 sensor event 來決定要怎樣的條件下觸發這個動作,相關設定都會自動產生成一份 Arduino Yun 可執行的 code,上傳後執行就可以了

在此我在 Message 欄位輸入 「I love coding」這段文字,您也可以在程式碼中把感測器值組合成字串之後發送,調整的彈性很大。


 9. 回到您的 Facebook 個人首頁看看吧,成功了!

 

 

相關文章:

 

Temboo – Arduino yun 發佈 Facebook 個人動態

Temboo 是一個好用的超級線上函式庫,有免費也有付費的帳號。在本團隊翻譯的[實戰物聯網開發:使用Arduino Yun] 這本書中,就讓 Arduino Yun 利用 Temboo 的各種函式庫來上傳資料到 Google spreadsheet、發送 Gmail 以及上傳 webcam 照片到 Dropbox 等功能。

本篇要來介紹如何透過Temboo 讓您的 Arduino Yun 可以發布 Facebook 動態,分成兩部分:Facebook 端與 Temboo 端,話說回來,要申請一個 Facebook app 是愈來愈難了。有興趣的讀者們請耐心完成喔!

成功的話就可以在您的 Facebook 上看到這樣的畫面,我是把 DHT11 溫濕度感測器上傳到我個人的 Facebook 動態牆。您可以看到有一個 caveyun,代表我們是透過一個名為 caveyun 的 Facebook app 來發佈動態,如果您是透過Facebook 網頁或是手機端的 app 的話,就不會看到這類東西。換言之,instagram, iphoto 等也是同樣的做法。

螢幕快照 2014-12-11 下午10.38.22

 

Temboo 首頁(需建立帳號)也可以看到您最近執行哪些操作。

螢幕快照 2015-05-20 上午1.09.48

參考:

ArduinoYun使用Temboo上傳照片至Dropbox


 

第一部分:Facebook 端

1. 請到 Facebook 開發者網站,登入您的個人帳號之後在 My Apps 標籤下,選擇 Add a New App 來建立一個 App,之後就需要用這個 App (我是用 caveyun)來讓您的 Arduino Yun 與 Facebook 互動。這邊的認證一定會比較嚴格,不然阿貓阿狗也可以發動態到您的個人動態牆就不妙了。另一方面,如果您的 Facebook 帳號比較不活躍(例如沒有通過電話簡訊認證)的話,這一步很有可能無法完成,Facebook 可能會認為這是洗板的機器人帳號。

建立時,請選擇最右邊的 www 網站,接下來就依序填入相關的資料就好。

 

螢幕快照 2015-05-21 上午12.29.38      螢幕快照 2015-05-21 上午12.34.42

建好之後,就會看到以下的 App 設定,其中重要的就是 App IDApp Secret,這兩筆資料在第二階段 Temboo 申請 OAuth token會用到。

螢幕快照 2015-05-20 上午1.16.40

 


 

第二階段:Temboo 端

1. 在 Temboo網站註冊一個帳號後,請先點選右上角的 ACCOUNT 標籤,接著點選左側的 Applications,在此要建立一個 temboo application,一樣會看到一個 Application name (arduinoyun) 與 application key,這些資料要填在 Temboo.h 中喔!

螢幕快照 2015-05-21 上午12.46.03

2. 把畫面右上角的 IoT Mode 打開,並選擇開發板為 Arduino Yun

螢幕快照 2015-05-20 上午1.49.28

 

3. 選擇 Temboo 頁面左側,您會看到很多知名的網路服務(Google, Dropbox, duckduckgo… 還有 Uber,真想都玩玩看!)請找到 Facebook 下的 Publishing -> SetStatus

螢幕快照 2015-05-20 上午1.10.11

4. 請點選 Get OAuth tokens,Temboo會帶您一步步操作,成功的話就可以取得 AccessToken,一起來吧!下方的 Message 選項則是您要發佈到 Facebook 個人動態牆的內容。

螢幕快照 2015-05-20 上午1.10.22

5. OAuth 第一步是要請您建立一個 Facebook app,這已經完成了吧。

螢幕快照 2015-05-20 上午1.21.21

6. 第二步是要在 Facebook app 頁面填入一個 Callback URL,請把 [https://temboo.com/oauth_helpers/confirm_facebook/] 這個連結填入您的 App Website 區中的 Site URL 欄位,完成後點選 Save Changes。
螢幕快照 2015-05-20 上午1.21.39

螢幕快照 2015-05-20 上午1.16.40

 

 

7. 在此填入您的 Facebook App ID 與 App Secret

螢幕快照 2015-05-20 上午1.22.33

8. 啟動認證,這時會跳轉到一個 Facebook 畫面,詢問您是否同意這個 app 可以發布訊息到您的動態牆,您在此可以決定發布的訊息是公開、只限朋友還是只限個人。很多 Facebook 小程式或是遊戲都會有這個步驟。

螢幕快照 2015-05-20 上午1.22.44

 

9. 終於完成了,其實 Temboo 也幫您把程式碼都弄好了,就是要取得這個 Access token嘛。請把這份程式燒錄到您的 Arduino Yun,確認網路連線都正常之後。過一會應該就可以看到您的 Facebook 帳號出現新的貼文囉!

螢幕快照 2015-05-20 上午1.49.49

別忘了在 Temboo.h 中要填入三筆資料,您的 Temboo 帳戶名稱、Application name 與 Application key,別把 Facebook 的 App ID / App Secret 搞混啦!螢幕快照 2015-05-21 上午1.02.42