การดึงข้อมูลลูกค้า

การอ่านข้อมูลลูกค้ามีอยู่สามวิธีดังนี้ การดาวน์โหลด TSV, การอ่านเป็นจำนวนมาก และการใช้ Webhooks

สิทธิ์การอนุญาต

คุณสามารถอ่านข้อมูลลูกค้าหรือการอัพเดตแบบเรียลไทม์ได้โดย:

  • การใช้โทเค็นการเข้าถึงเพจ เช่น โทเค็นการเข้าถึงของผู้ดูแลเพจของเพจนั้นๆ โทเค็นการเข้าถึงเพจยังช่วยให้คุณสามารถอ่านช่องเฉพาะสำหรับโฆษณา เช่น ad_id, campaign_id ตราบเท่าที่คุณมีสิทธิ์การอนุญาตระดับผู้ลงโฆษณาเป็นอย่างน้อยในบัญชีผู้ใช้โฆษณาที่เชื่อมโยงกับโฆษณาแบบกรอกฟอร์ม
  • การใช้โทเค็นการเข้าถึงที่เป็นของผู้ดูแลเพจ หากต้องการเข้าถึงข้อมูลลูกค้าและข้อมูลระดับโฆษณาทั้งหมด โทเค็นการเข้าถึงควรมีขอบเขต manage_pages และ ads_management

หากต้องการดึงข้อมูลลูกค้าเมื่อได้รับ ID ข้อมูลลูกค้าผ่าน Webhooks คุณต้องมี ads_management รวมทั้งสิทธิ์การอนุญาต API การดึงข้อมูลลูกค้า leads_retrieval และสิทธิ์การอนุญาต manage_pages คุณควรส่งแอพของคุณไปที่ "การตรวจพิจารณาแอพ"

เราจะหยุดการส่งข้อมูลที่เก็บรวบรวมในโฆษณาแบบกรอกฟอร์มผ่าน Webhooks ไปยังแอพในโหมดผู้พัฒนา เราจะเริ่มบังคับใช้การเปลี่ยนแปลงนี้ในวันที่ 1 กุมภาพันธ์ 2019

คุณสามารถจัดการสิทธิ์ของผู้ใช้ได้ด้วยบทบาทในเพจ

การดาวน์โหลด TSV

คุณสามารถสอบถามแบบฟอร์มการสร้างลูกค้าเป้าหมายเฉพาะได้โดยตรง โปรดทราบว่าช่องจะได้รับการติดป้ายเป็น leadgen_export_csv_url แม้ว่ารูปแบบที่รองรับจะมีเฉพาะ TSV ก็ตาม

use FacebookAds\Object\LeadgenForm;

$form = new LeadgenForm(<FORM_ID>);
$form->read();
from facebookads.adobjects.leadgenform import LeadgenForm

form = LeadgenForm(<LEADGEN_FORM_ID>)
form.remote_read()
curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<FORM_ID>

การตอบกลับ:

{
  "id": "<LEAD_GEN_FORM_ID>",
  "leadgen_export_csv_url": "https://www.facebook.com/ads/lead_gen/export_csv?type=form&amp;id=<FORM_ID>",
  "locale": "en_US",
  "name": "My Form",
  "status": "ACTIVE"
}

การกรอง

คุณสามารถเลือกกรองการตอบกลับของ URL เพื่อดาวน์โหลดข้อมูลลูกค้าในช่วงวันที่ที่ระบุได้ ใช้ from_date และ to_date ในรูปแบบเวลา POSIX หรือ UNIX เพื่อแสดงจำนวนวินาทีนับตั้งแต่ช่วงเวลาที่มีนัยสำคัญ ตัวอย่างเช่น หากต้องการดาวน์โหลดข้อมูลลูกค้าสำหรับช่วงเวลาที่เริ่มต้นเมื่อ 2016-01-13 18:20:31 UTC และสิ้นสุดเมื่อ 2016-01-14 18:20:31 UTC:

https://www.facebook.com/ads/lead_gen/export_csv/?id=<FORM_ID>&amp;type=form&amp;from_date=1482698431&amp;to_date=1482784831

หมายเหตุ:

  • หาก from_date ไม่ได้รับการตั้งค่า หรือเป็นค่าที่น้อยกว่าเวลาที่สร้างแบบฟอร์ม เวลาที่สร้างแบบฟอร์มจะได้รับการนำมาใช้
  • หาก to_date ไม่ได้รับการตั้งค่า หรือ Timestamp เป็นค่าที่มากกว่าเวลาปัจจุบัน เวลาปัจจุบันจะได้รับการนำมาใช้

หากมีรายการที่ไม่มี ID โฆษณาหรือ ID กลุ่มโฆษณาใน TSV อาจมีสาเหตุดังนี้

  • ข้อมูลลูกค้าที่ได้รับการสร้างขึ้นจากการเข้าถึงแบบออร์แกนิก ในกรณีนี้ is_organic ใน TSV จะแสดง 1 มิฉะนั้น ค่าดังกล่าวจะเป็น 0
  • อาจทำการส่งข้อมูลลูกค้าจากภาพตัวอย่างโฆษณาได้
  • คนที่ดาวน์โหลดข้อมูลลูกค้าจะขาดสิทธิพิเศษของผู้ลงโฆษณาในบัญชีผู้ใช้โฆษณาที่แสดงโฆษณาแบบกรอกฟอร์ม

การอ่านเป็นจำนวนมาก

leads มีอยู่ทั้งในโหนดแบบฟอร์มและกลุ่มโฆษณา ซึ่งจะส่งกลับข้อมูลทั้งหมดที่เกี่ยวข้องกับออบเจ็กต์ที่สอดคล้องกันของข้อมูล เนื่องจากแบบฟอร์มสามารถนำกลับมาใช้กับโฆษณาได้มากมาย แบบฟอร์มของคุณจึงสามารถมีข้อมูลลูกค้าได้มากกว่าโฆษณาที่ใช้ข้อมูลลูกค้านั้นอยู่

วิธีการอ่านโฆษณาเป็นจำนวนมาก:

curl -X GET \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.2/{adgroup-id}/leads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const Ad = bizSdk.Ad; const Lead = bizSdk.Lead; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_GROUP_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { }; const leadss = (new Ad(id)).getLeads( fields, params ); logApiCallResult('leadss api call complete.', leadss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\Ad; use FacebookAds\Object\Lead; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_GROUP_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( ); echo json_encode((new Ad($id))->getLeads( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.ad import Ad from facebook_business.adobjects.lead import Lead from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_GROUP_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { } print Ad(id).get_leads( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_GROUP_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new Ad(id, context).getLeads() .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_GROUP_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad = FacebookAds::Ad.get(id) leadss = ad.leads({ fields: { }, })

วิธีอ่านแบบฟอร์ม:

curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
-d 'fields=created_time,id,ad_id,form_id,field_data' \
https://graph.facebook.com/<API_VERSION>/<FORM_ID>/leads

การตอบกลับ:

{
  "data": [
    {
      "created_time": "2018-02-28T08:49:14+0000", 
      "id": "<LEAD_ID>", 
      "ad_id": "<AD_ID>",
      "form_id": "<FORM_ID>",
      "field_data": [
        {
          "name": "car_make",
          "values": [
            "Honda"
          ]
        }, 
        {
          "name": "full_name", 
          "values": [
            "Joe Example"
          ]
        }, 
        {
          "name": "email", 
          "values": [
            "joe@example.com"
          ]
        },
      ], 
      ...
    }
  ],
  "paging": {
    "cursors": {
      "before": "OTc2Nz3M8MTgyMzU1NDMy", 
      "after": "OTcxNjcyOTg8ANTI4NzE4"
    }
  }
}

การอ่านค่าคำถามของตัวค้นหาร้านค้า

คำถามของตัวค้นหาร้านค้าไม่ได้แตกต่างจากคำถามอื่นๆ แต่อย่างใด คำถามของตัวค้นหาร้านค้าจะมี ID ของช่องที่จะแมปเข้ากับคำถามระหว่างการสร้างแบบฟอร์มด้วยเช่นกัน ระบบจะส่งคำถามของตัวค้นหาร้านค้าเหมือนกับที่ส่งคำถามอื่นๆ ด้วยเช่นกัน ค่าที่ถูกส่งผ่านจะมาจากหมายเลขร้านค้าของตำแหน่งที่เลือก

ตัวอย่างเช่น สมมุติว่าคุณมีคำถามของตัวค้นหาร้านค้าที่มี selected_dealer เป็น ID ของช่อง หากต้องการดึงข้อมูลลูกค้าแบบเป็นกลุ่ม คุณสามารถเรียกโค้ดดังต่อไปนี้ได้:

curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
-d 'fields=created_time,id,ad_id,form_id,field_data' \
https://graph.facebook.com/<API_VERSION>/<FORM_ID>/leads

การตอบกลับ:

{
  "data": [
    {
      "created_time": "2018-02-28T08:49:14+0000", 
      "id": "<LEAD_ID>", 
      "ad_id": "<AD_ID>",
      "form_id": "<FORM_ID>",
      "field_data": [
        {
          "name": "car_make",
          "values": [
            "Honda"
          ]
        }, 
        {
          "name": "full_name", 
          "values": [
            "Joe Example"
          ]
        }, 
        {
          "name": "email", 
          "values": [
            "joe@example.com"
          ]
        },
        {
          "name": "selected_dealer", 
          "values": [
            "99213450"
          ]
        }
      ], 
      ...
    }
  ],
  "paging": {
    "cursors": {
      "before": "OTc2Nz3M8MTgyMzU1NDMy", 
      "after": "OTcxNjcyOTg8ANTI4NzE4"
    }
  }
}

การอ่านการตอบกลับข้อจำกัดความรับผิดชอบที่กำหนดเอง

field_data ไม่มีการตอบกลับกล่องกาเครื่องหมายข้อจำกัดความรับผิดชอบทางเลือกที่ผู้ใช้น่าจะกรอกไปแล้ว หากต้องการดึงข้อมูลการตอบกลับ คุณสามารถใช้ช่อง custom_disclaimer_responses ได้

curl \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<LEAD_ID>?fields=custom_disclaimer_responses"

การตอบกลับ:

{
  "custom_disclaimer_responses": [
    {
      "checkbox_key": "optional_1",
      "is_checked": "1"
    },
    {
      "checkbox_key": "optional_2",
      "is_checked": ""
    }
  ],
  "id": "1231231231"
}

การกรองข้อมูลลูกค้า

ตัวอย่างนี้จะกรองข้อมูลลูกค้าตาม Timestamp Timestamp ควรเป็น Unix Timestamp

curl -X GET \ -d 'filtering=[ { "field": "time_created", "operator": "GREATER_THAN", "value": 1552412240 } ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.2/{adgroup-id}/leads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const Ad = bizSdk.Ad; const Lead = bizSdk.Lead; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_GROUP_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'filtering' : [{'field':'time_created','operator':'GREATER_THAN','value':1546549613}], }; const leadss = (new Ad(id)).getLeads( fields, params ); logApiCallResult('leadss api call complete.', leadss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\Ad; use FacebookAds\Object\Lead; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_GROUP_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'filtering' => array(array('field' => 'time_created','operator' => 'GREATER_THAN','value' => 1546549613)), ); echo json_encode((new Ad($id))->getLeads( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.ad import Ad from facebook_business.adobjects.lead import Lead from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_GROUP_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'filtering': [{'field':'time_created','operator':'GREATER_THAN','value':1546549613}], } print Ad(id).get_leads( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_GROUP_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new Ad(id, context).getLeads() .setParam(\"filtering\", \"[{\\"field\\":\\"time_created\\",\\"operator\\":\\"GREATER_THAN\\",\\"value\\":1546549613}]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_GROUP_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad = FacebookAds::Ad.get(id) leadss = ad.leads({ fields: { }, filtering: [{'field':'time_created','operator':'GREATER_THAN','value':1546549613}], })

การทำให้เป็นโทเค็น

หากแบบฟอร์มได้กำหนด ID ของช่องแล้ว ช่องและค่าต่างๆ ที่ส่งคืนจะเป็นช่องและค่าที่ระบุไว้

Webhooks

รับการอัพเดตแบบเรียลไทม์เมื่อมีการกรอกข้อมูลลูกค้า ดูโฆษณาแบบกรอกฟอร์มที่ใช้ Webhooks, วิดีโอ

CRM จำนวนมากจะให้การอัพเดตแบบเรียลไทม์ในการย้ายข้อมูลของโฆษณาแบบกรอกฟอร์มไปยัง CRM ดูการผสานการทำงาน CRM ที่ใช้งานได้

การตั้งค่า

1. ตั้งค่าตำแหน่งข้อมูลให้จัดการกับ Ping แบบเรียลไทม์

ปิงสำหรับการอัพเดตแบบเรียลไทม์ได้รับการกำหนดโครงสร้างตามนี้ อ่านเพิ่มเติมได้ที่การอัพเดตแบบเรียลไทม์ บล็อก

การเปลี่ยนแปลงจำนวนมากสามารถผ่านเข้ามาทาง Ping ในอาร์เรย์การเปลี่ยนแปลงได้

array(
  "object" => "page",
  "entry" => array(
    "0" => array(
      "id" => 153125381133,
      "time" => 1438292065,
      "changes" => array(
        "0" => array(
          "field" => "leadgen",
          "value" => array(
            "leadgen_id" => 123123123123,
            "page_id" => 123123123,
            "form_id" => 12312312312,
            "adgroup_id" => 12312312312,
            "ad_id" => 12312312312,
            "created_time" => 1440120384
          )
        ),
        "1" => array(
          "field" => "leadgen",
          "value" => array(
            "leadgen_id" => 123123123124,
            "page_id" => 123123123,
            "form_id" => 12312312312,
            "adgroup_id" => 12312312312,
            "ad_id" => 12312312312,
            "created_time" => 1440120384
          )
        )
      )
    )
  )
)

คุณสามารถใช้ leadgen_id เพื่อดึงข้อมูลที่เชื่อมโยงกับข้อมูลลูกค้าดังกล่าวได้:

curl -X GET \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.2/{lead-id}/
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const Lead = bizSdk.Lead; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { }; const sample_code = (new Lead(id)).get( fields, params ); logApiCallResult('sample_code api call complete.', sample_code);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\Lead; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( ); echo json_encode((new Lead($id))->getSelf( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.lead import Lead from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { } print Lead(id).get( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new Lead(id, context).get() .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end lead = FacebookAds::Lead.get(id ,'')

การตอบกลับ:

{
  "created_time": "2015-02-28T08:49:14+0000", 
  "id": "<LEAD_ID>", 
  "ad_id": "<AD_ID>",
  "form_id": "<FORM_ID>",
  "field_data": [{
    "name": "car_make",
    "values": [
      "Honda"
    ]
  }, 
  {
    "name": "full_name", 
    "values": [
      "Joe Example"
    ]
  }, 
  {
    "name": "email", 
    "values": [
      "joe@example.com"
    ]
  },
  {
    "name": "selected_dealer", 
    "values": [
      "99213450"
    ]
  }],
  ...
}

2. สมัครรับข้อมูลเหตุการณ์การสร้างข้อมูลลูกค้าให้กับแอพ

หากต้องการสมัครรับข้อมูลเหตุการณ์ leadgen เซิร์ฟเวอร์ของคุณควรตอบกลับด้วยคำขอ HTTP GET ตามที่ระบุไว้ในการรับข้อมูลอัพเดต API แบบเรียลไทม์ด้วย Webhooks

หลังจากตั้งค่า URL การเรียกกลับแล้ว ให้สมัครรับข้อมูล Webhooks leadgen ในแดชบอร์ดของแอพหรือผ่านการเรียก API:

หากต้องการสมัครรับข้อมูลผ่าน API คุณจะต้องมีโทเค็นการเข้าถึงแอพ ไม่ใช่โทเค็นการเข้าถึงของผู้ใช้:

curl \
-F "object=page" \
-F "callback_url=https://www.yourcallbackurl.com" \
-F "fields=leadgen" \
-F "verify_token=abc123" \
-F "access_token=<APP_ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<APP_ID>/subscriptions"

3. รับโทเค็นของเพจ

สร้างโทเค็นของเพจระยะยาวแบบใช้งานครั้งเดียว เพื่อดึงข้อมูลอย่างต่อเนื่อง โดยไม่ต้องกังวลเกี่ยวกับการหมดอายุ:

  1. รับโทเค็นผู้ใช้ทั่วไป
  2. แปลงเป็นโทเค็นระยะยาว
  3. เมื่อมีโทเค็นการเข้าถึงของผู้ใช้ระยะยาวแล้ว ให้ส่งคำขอโทเค็นของเพจ
curl -X GET \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.2/{user-id}/accounts
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const User = bizSdk.User; const Page = bizSdk.Page; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { }; const accountss = (new User(id)).getAccounts( fields, params ); logApiCallResult('accountss api call complete.', accountss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\User; use FacebookAds\Object\Page; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( ); echo json_encode((new User($id))->getAccounts( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.user import User from facebook_business.adobjects.page import Page from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { } print User(id).get_accounts( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new User(id, context).getAccounts() .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end user = FacebookAds::User.get(id) accountss = user.accounts({ fields: { }, })

การตอบกลับ:

{
  "data": [
    {
      "access_token": "[REDACTED]",
      "category": "Pet",
      "name": "Puppy",
      "id": "153125381133",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "CREATE_CONTENT",
        "MODERATE_CONTENT",
        "CREATE_ADS",
        "BASIC_ADMIN"
      ]
    },
  ]
}

โทเค็นของหน้าระยะยาวนี้ไม่มีวันหมดอายุ และคุณสามารถเขียนโค้ดถาวรของหน้าลงในการผสานรวม RTU แบบง่ายเพื่อรับข้อมูลลูกค้าได้

4. สมัครรับข้อมูลเพจให้กับแอพ

เมื่อมี access_token สำหรับเพจที่คุณต้องการสมัครรับข้อมูลแล้ว ให้ทำการเรียกด้านล่างเพื่อรับรองความถูกต้องของแอพสำหรับเพจของคุณ หากต้องการดำเนินการตามนี้ คุณต้องมีสิทธิ์การอนุญาต MANAGE_PAGES และ LEADS_RETRIEVAL ในเพจ

curl -X POST \ -F 'subscribed_fields="leadgen"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.2/{page-id}/subscribed_apps
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const Page = bizSdk.Page; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<PAGE_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'subscribed_fields' : 'leadgen', }; const subscribed_apps = (new Page(id)).createSubscribedApp( fields, params ); logApiCallResult('subscribed_apps api call complete.', subscribed_apps);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\Page; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<PAGE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'subscribed_fields' => 'leadgen', ); echo json_encode((new Page($id))->createSubscribedApp( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.page import Page from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PAGE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'subscribed_fields': 'leadgen', } print Page(id).create_subscribed_app( fields=fields, params=params, )
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PAGE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end page = FacebookAds::Page.get(id) subscribed_apps = page.subscribed_apps.create({ subscribed_fields: 'leadgen', })

แอพ Facebook ที่เชื่อมโยงกับโทเค็นของคุณได้รับการรับรองความถูกต้องสำหรับการอัพเดตเพจ คุณไม่จำเป็นต้องระบุ ID ของแอพ

เมื่อสำเร็จ ปิงแบบเรียลไทม์จะเกิดขึ้นในเหตุการณ์ต่างๆ โดยที่มีความล่าช้าเพียงไม่กี่นาที ดูการแก้ไขข้อผิดพลาดการผสานการทำงานแบบเรียลไทม์