查詢Facebook 企業戶的單一顧客所有ID

根據 Messenger API 2.1 公開說明

Messenger 平台交接通訊協定可以讓兩或多個應用程式在粉絲專頁的 Messenger 平台上共同作業。 粉絲專頁管理員可以針對粉絲專頁的訂閱應用程式設定角色,就可啟用這個功能,將訊息對話串的控制權在應用程式之間傳遞。 系統會根據應用程式當時是否擁有訊息對話串控制權,而將訊息傳遞到不同管道。

實作流程

  1. 粉絲頁面 GodzillaAlert
  2. MessengerBot — Aha_DEV_Messenger
  3. PageBot — Aha_Robot_Page
  4. 連結所有開發程式都到相同企業帳號底下
  5. 測試Messenger 可以運作, 首先啟用webhook, 先讓Page -> Edit Subscription
  6. 現在驗證webhook變得比較複雜一點, 可以參考此連結,主要是增加sha1的檢查。然後到Messenger 底下設定Webhook需要的權限messages, messaging_postbacks, messaging_optins, message_reads, standby, messaging_handovers
  7. 後續可以再查這些權限各自是為了什麼功能而需要
  8. 接著註冊 這個App到 Page上面
curl -X POST "https://graph.facebook.com/v2.10/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN"

6. 理論上應該可以看見Messenger -> Webhooks已經有註冊好一個Page, 同時粉絲專頁設定 -> Messenger 後面也應該可以看見Aha_DEV_Messenger的出現。

7. 對話測試https://m.me/GodzillaAlert 看看是否可以看見一樣的內容

8. 接下來也同樣設定一樣的功能給Aha_Robot_Page掛上去, 但是主要是掛上Page -> Feed 的changes webhook

9. 其實好像可以直接用 不用另外多掛一個app

透過此網頁拿到 app scope 的 access_token, 然後使用以下API 就能查到相對應的所有ID_for_Apps 與 ID_for_Pages

其中 IDs_for_pages 裡的id 主要是提供給我們後續透過Messenger 發送回給使用者的recipient id。至於 IDs_for_apps 則是使用者透過粉絲團發送訊息給我們的senderID。

因此整個流程應該就是:

  1. 顧客fb原始id 發送訊息給Page
  2. Page 根據顧客fbid 轉換後,再根據顧客在不同App上的ID 當作訊息發送ID,送到我們設定的webhook server上,然後當處理完成後,我們透過Messenger將訊息送到Page上,此時我們需要顧客在Page上的ID,因此就需要透過相同企業戶的內部ID轉換機制,得到這個ID,後續就透過這個ID進行相關訊息的處理與發送。

後記

Facebook Graph API最關鍵的核心,請愛用Facebook 提供的工具 存取權杖工具,這樣可以拿到App Token,此外搭配 圖型API測試工具,協助你不需要寫程式就能從User 拿到足夠的權限給 App,這樣App Token就能打通所有Graph API 的功能。

--

--

aha 專長於組裝各式語言與各大平台服務,打造最小可行產品原型.曾獲得2011 政府開放資料平台App社會組首獎.2015 PIXNET Mobile Service社會組首獎.2014 DSC R 課程講師.2017pycon與2017 DSC講者,2022 法律x法遵黑客松第三名。

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Cheng-Yu Lin

Cheng-Yu Lin

aha 專長於組裝各式語言與各大平台服務,打造最小可行產品原型.曾獲得2011 政府開放資料平台App社會組首獎.2015 PIXNET Mobile Service社會組首獎.2014 DSC R 課程講師.2017pycon與2017 DSC講者,2022 法律x法遵黑客松第三名。