เวอร์ชันของ API กราฟ

/{app-id}/subscriptions

จุดเชื่อมโยงนี้ช่วยให้คุณสามารถกำหนดค่าการสมัครรับข้อมูล Webhooks จากแอพได้

การอ่าน

Graph API Explorer
GET /v19.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{app-id}/subscriptions',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

  • ต้องใช้โทเค็นการเข้าถึงแอพเพื่อส่งคืนการสมัครรับข้อมูลสำหรับแอพดังกล่าว

ช่อง

ชื่อ คำอธิบาย ประเภท

object

บ่งบอกประเภทอ็อบเจ็กต์ที่ใช้การสมัครรับข้อมูลนี้

enum{user, page, permissions, payments}

callback_url

URL ที่จะรับคำขอ POST เมื่อมีการทริกเกอร์การอัพเดต

string

fields

ชุดช่องใน object นี้ที่มีการสมัครรับข้อมูล

string[]

active

บ่งบอกว่ามีการเปิดใช้งานการสมัครรับข้อมูลอยู่หรือไม่

bool

การสร้าง

คุณสามารถสร้างการสมัครรับข้อมูล Webhooks ใหม่ได้โดยใช้จุดเชื่อมโยงนี้

POST /v19.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com

object=page&callback_url=http%3A%2F%2Fexample.com%2Fcallback%2F&fields=about%2C+picture&include_values=true&verify_token=thisisaverifystring
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{app-id}/subscriptions',
    array (
      'object' => 'page',
      'callback_url' => 'http://example.com/callback/',
      'fields' => 'about, picture',
      'include_values' => 'true',
      'verify_token' => 'thisisaverifystring',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
Bundle params = new Bundle();
params.putString("object", "page");
params.putString("callback_url", "http://example.com/callback/");
params.putString("fields", "about, picture");
params.putString("include_values", "true");
params.putString("verify_token", "thisisaverifystring");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"object": @"page",
  @"callback_url": @"http://example.com/callback/",
  @"fields": @"about, picture",
  @"include_values": @"true",
  @"verify_token": @"thisisaverifystring",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

การส่งคำขอ POST ที่มีช่อง callback_url, verify_token และ object จะเปิดใช้งานการสมัครรับข้อมูลอีกครั้ง

ข้อจำกัด

  • ระบบไม่รองรับ Webhooks สำหรับ Instagram คุณจะต้องกำหนดค่า Webhooks สำหรับ Instagram โดยใช้แดชบอร์ดของแอพ
  • ระบบไม่รองรับ Webhooks สำหรับ WhatsApp คุณจะต้องกำหนดค่า Webhooks สำหรับ WhatsApp โดยใช้แดชบอร์ดของแอพ

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

  • ต้องใช้โทเค็นการเข้าถึงแอพเพื่อเพิ่มการสมัครรับข้อมูลใหม่สำหรับแอพดังกล่าว
  • การสมัครรับข้อมูลสำหรับอ็อบเจ็กต์ประเภท user จะใช้ได้เฉพาะกับผู้ใช้ที่ได้ติดตั้งแอพแล้วเท่านั้น
  • การสมัครรับข้อมูลสำหรับอ็อบเจ็กต์ประเภท page จะใช้ได้เฉพาะกับเพจที่ได้ติดตั้งแอพแล้วเท่านั้น คุณสามารถติดตั้งแอพสำหรับเพจได้โดยใช้จุดเชื่อมโยง /{page-id}/subscribed_apps
  • แอพที่ใช้ในการสมัครรับข้อมูลต้องมีการตั้งค่าให้รับการอัพเดต Webhooks

ช่อง

ชื่อ คำอธิบาย ประเภท

object

บ่งบอกประเภทอ็อบเจ็กต์ที่ใช้การสมัครรับข้อมูลนี้

enum{user, page, permissions, payments}

callback_url

URL ที่จะรับคำขอ POST เมื่อมีการทริกเกอร์การอัพเดต และคำขอ GET เมื่อพยายามดำเนินการเผยแพร่นี้ โปรดดูคู่มือการสร้างหน้า URL การเรียกกลับของเรา

string

fields

ชุดช่องที่ใช้งานได้อย่างน้อย 1 ชุดใน object นี้ที่จะสมัครรับข้อมูล

string[]

include_values

บ่งบอกว่าการแจ้งเตือนถึงการเปลี่ยนแปลงควรมีค่าใหม่รวมอยู่ด้วยหรือไม่

bool

verify_token

สตริงแบบกำหนดเองที่สามารถใช้เพื่อยืนยันไปยังเซิร์ฟเวอร์ของคุณว่าคำขอถูกต้อง

string

การตอบกลับ

หาก URL การเรียกกลับของคุณถูกต้องและการสมัครรับข้อมูลสำเร็จจะมีลักษณะดังนี้

{
  "success": true
}

หากไม่สำเร็จ ระบบจะส่งคืนข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง

การลบ

คุณสามารถลบการสมัครรับข้อมูลทั้งหมดหรือการสมัครรับข้อมูลต่ออ็อบเจ็กต์ได้โดยใช้การดำเนินการนี้

DELETE /v19.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com

object=page
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{app-id}/subscriptions',
    array (
      'object' => 'page',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
Bundle params = new Bundle();
params.putString("object", "page");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    params,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"object": @"page",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

คุณสามารถลบบางช่องออกจากการสมัครรับข้อมูลได้โดยระบุพารามิเตอร์ fields

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

  • ต้องใช้โทเค็นการเข้าถึงแอพเพื่อลบการสมัครรับข้อมูลสำหรับแอพดังกล่าว

ช่อง

ชื่อ คำอธิบาย ประเภท

object

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

enum{user, page, permissions, payments}

fields

ชุดช่องที่ใช้งานได้อย่างน้อย 1 ชุดใน object นี้ที่จะสมัครรับข้อมูล

string[]

การตอบกลับ

หากสำเร็จ การแสดงผลจะเป็นดังนี้

{
  "success": true
}

หากไม่สำเร็จ ระบบจะส่งคืนข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง

การอัพเดต

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