跨應用程式和 Messenger Bot 連接用戶

企業利用多種管道與顧客進行溝通是極為常見的,例如網站、行動應用程式和 Messenger。當用戶在網站或行動應用程式上使用「Facebook 登入」,系統便會針對特定的 Facebook 應用程式建立編號,稱為應用程式範圍編號。當用戶透過 Messenger 與企業互動,系統便會針對與 Messenger Bot 相關聯的特定粉絲專頁建立編號,稱為粉絲專頁範圍編號。這也表示,對同一用戶而言,不同溝通管道的編號會有所不同。請注意,應用程式範圍編號會在用戶登入應用程式時建立完畢,因此若用戶尚未安裝或註冊您的應用程式,您將不會看到相關的應用程式範圍編號。

企業可能會想要為跨各種管道的用戶提供連貫流暢的使用體驗。舉例來說,當用戶在 Messenger 中透過 Bot 與企業聯繫時,如果企業可辨識出該用戶是企業的 Facebook 應用程式(例如,使用「Facebook 登入」的網站或行動應用程式)的現有顧客,就可進一步個人化使用體驗。我們提供的 API 可擷取同一用戶在相同企業管理平台擁有的各個應用程式和 Messenger Bot 中的編號。

首先,您必須告知 Facebook 您的應用程式及與 Messenger Bot 相關聯的粉絲專頁是由相同企業實體所擁有。若要這樣做,您需要使用 Facebook 企業管理平台進行以下操作:

然後,您就可查詢 User 節點的 ids_for_appsids_for_pages 關係連線,以擷取編號。

您對 API 發出的初始呼叫可能得經過應用程式審查,而此審查需要大約 48 小時才會完成。

本文內容:

使用案例

這個 API 有幾個主要的使用案例:

指定 Messenger Bot 的用戶編號,然後針對相同企業管理平台所擁有的應用程式,擷取編號

  • User 節點: 與 Messenger Bot 相關聯之粉絲專頁的粉絲專頁範圍編號。
  • 關係連線:ids_for_apps
  • 必備要求: 需要粉絲專頁存取權杖appsecret_proof,兩者都必須由管理該粉絲專頁的應用程式產生。此外,管理該粉絲專頁的應用程式和要連接的其他應用程式都必須由相同的企業管理平台所擁有。

範例:

  1. 這樣會針對相同企業管理平台擁有的所有應用程式,傳回編號
    GET /{user-id}/ids_for_apps
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 這樣會針對應用程式編號為 10152368852405295 的特定應用程式,傳回編號
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

指定應用程式的用戶編號,然後針對相同企業管理平台擁有的 Messenger Bot,擷取編號

  • User 節點: 應用程式範圍編號。
  • 關係連線:ids_for_pages
  • 必備要求: 需要粉絲專頁存取權杖appsecret_proof,兩者都必須由管理該粉絲專頁且由編號隸屬的應用程式產生。此外,應用程式和粉絲專頁都必須由相同的企業管理平台所擁有。

範例:

  1. 這樣會針對所有 Messenger Bot 傳回編號,且與這些 Bot 相關聯的粉絲專頁都是由相同企業管理平台所擁有
    GET /{user-id}/ids_for_pages
        ?access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 這樣會針對特定 Messenger Bot 傳回編號,且與這個 Bot 相關聯之粉絲專頁的粉絲專頁編號為 380374449010653
    GET /{user-id}/ids_for_pages
        ?page=380374449010653
        &access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]

指定應用程式的用戶編號,然後針對相同企業管理平台所擁有的其他應用程式,擷取編號

  • User 節點: User 節點是該應用程式範圍的編號。
  • 關係連線:ids_for_apps
  • 必備要求: 需要應用程式存取權杖,由編號隸屬的應用程式產生。此外,所有的應用程式都必須由相同的企業管理平台所擁有。

範例:

  1. 這樣會針對相同企業管理平台擁有的所有應用程式,傳回編號
    GET /{user-id}/ids_for_apps
        ?access_token=[app_access_token]
  2. 這樣會針對應用程式編號為 10152368852405295 的特定應用程式,傳回編號
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[app_access_token]

指定(與 Bot 相關聯的)粉絲專頁的用戶編號,然後針對相同企業管理平台所擁有的其他粉絲專頁,擷取編號

  • User 節點: 與 Messenger Bot 相關聯之粉絲專頁的粉絲專頁範圍編號。
  • 關係連線:ids_for_pages
  • 必備要求: 需要粉絲專頁存取權杖appsecret_proof,兩者都必須由管理該粉絲專頁的應用程式產生。此外,所有的粉絲專頁都必須由相同的企業管理平台所擁有。

範例:

  1. 這樣會針對相同企業管理平台擁有的所有粉絲專頁,傳回編號
    GET /{user-id}/ids_for_pages
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 這樣會針對應用程式編號為 380374449010653 的特定應用程式,傳回編號
    GET /{user-id}/ids_for_pages
        ?app=380374449010653
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

查詢範例

從應用程式編號擷取相關編號

GET /{user-id}
    ?fields=name,age_range,ids_for_apps,ids_for_pages
    &access_token=[app_access_token]

回應範例:

{
  "name": "John Smith",
  "age_range": {
    "min": 21
  },
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

從 Messenger Bot 編號擷取相關編號

GET /{user-id}
    ?fields=name,is_payment_enabled,ids_for_apps,ids_for_pages
    &access_token=[page_access_token]
    &appsecret_proof=[appsecrete_proof]

回應範例:

{
  "name": "John Smith",
  "is_payment_enabled": true,
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

    

政策

企業為了將該企業應用程式或粉絲專頁的編號連接到由相同企業擁有並代表維護的其他應用程式或粉絲專頁時,才可使用這個 API。例如,服務供應商不可使用這個 API 來支援多位顧客。

如果疑似違反本政策,您的 API 要求會需要接受審查,並傳回錯誤訊息:「(#200)貴企業目前正在接受使用此 API 的審查」。