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

ตำแหน่งที่ตั้งในเพจ

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

การอ่านจุดเชื่อมโยงนี้ใช้งานได้สำหรับทุกแอพ การดำเนินการเผยแพร่บางประเภทจะใช้ได้กับผู้พัฒนาที่ได้รับคัดเลือกเท่านั้น

เมื่อใช้การดำเนินการเผยแพร่ของ API นี้ โปรดปฏิบัติตามแนวทางต่อไปนี้:

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

การอ่าน

Graph API Explorer
GET /v21.0/{page-id}/locations 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(
    '/{page-id}/locations',
    '{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 */
FB.api(
    "/{page-id}/locations",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

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

ช่อง

อาร์เรย์ของอ็อบเจ็กต์เพจ โดยแต่ละรายการจะแสดงถึงตำแหน่งที่ตั้งแต่ละแห่งของธุรกิจ

การเผยแพร่

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

POST /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

  • ต้องใช้โทเค็นการเข้าถึงเพจเพื่อเผยแพร่ตำแหน่งที่ตั้งที่มีอยู่ไปยังเพจ
  • ต้องใช้โทเค็นการเข้าถึงเพจเพื่อสร้างตำแหน่งที่ตั้งใหม่และเพิ่มลงในเพจ เฉพาะผู้พัฒนาที่ได้รับคัดเลือกเท่านั้นที่มีสิทธิ์เข้าถึงฟังก์ชั่นการทำงานนี้

ช่อง

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

differently_open_offerings

ใช้เมื่อ temporary_status ตั้งค่าเป็น differently_open เพื่อระบุว่าธุรกิจประกอบกิจการแตกต่างไปจากปกติอย่างไร เช่น ร้านอาหารให้บริการอาหารแบบสั่งกลับบ้าน คีย์ Enum สามารถเป็นรายการต่อไปนี้ได้อย่างน้อย 1 รายการ: ONLINE_SERVICES, DELIVERY, PICKUP และ OTHER ที่ตั้งค่าเป็น true หรือ false ตัวอย่างเช่น ร้านอาหารที่มีตัวเลือกให้มารับอาหารแต่หยุดการส่งอาหารไว้ชั่วคราวจะเป็น differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

กำหนดเวลาทำการสำหรับตำแหน่งที่ตั้งนี้

object

{day}_{number}_{status}

กำหนดช่วงเวลาทำการเดียวต่อวัน แต่ละวันสามารถมีช่วงเวลาที่แตกต่างกันได้ 2 ช่วง โดย {day} ควรเป็นอักขระ 3 ตัวแรกของวันในสัปดาห์ ส่วน {number} ควรเป็น 1 หรือ 2 เพื่อให้สามารถมีช่วงเวลาที่แตกต่างกัน 2 ช่วงต่อวันได้ และ {status} ควรเป็น open หรือ close เพื่อระบุจุดเริ่มต้นหรือสิ้นสุดของช่วงเวลา ตัวอย่างเช่น mon_1_open ที่มีค่าเป็น 17:00 และ mon_1_close ที่มีค่าเป็น 21:15 ซึ่งจะแสดงช่วงเวลาทำการเดียว คือ 17:00 น. ถึง 21:15 น. วันจันทร์

string

ignore_warnings

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

bool

is_franchise

นี่คือตำแหน่งที่ตั้งของแฟรนไชส์ใช่หรือไม่

bool

country

ชื่อประเทศ หากไม่ได้ระบุ city_id คุณจะต้องระบุช่องนี้

string

city

ชื่อเมือง หากไม่ได้ระบุ city_id คุณจะต้องระบุช่องนี้

string

city_id

ID ของเมือง รายการนี้คือค่า key ของตัวเลือกการกำหนดเป้าหมาย adcity หากไม่ได้ระบุช่องนี้ คุณจะต้องระบุ city และ country (นอกจากนี้ ต้องระบุ state และ zip อีกด้วยสำหรับตำแหน่งที่ตั้งในสหรัฐฯ)

int

latitude

ละติจูดแบบใช้ทศนิยม ต้องระบุสำหรับ location

string

location

ฟิลด์นี้กำหนดตำแหน่งที่ตั้งสำหรับเพจนี้ ต้องระบุ หากไม่มีการระบุ location_page_id พจนานุกรมต้องมีคีย์ street (ที่อยู่) ซึ่งจะต้องมี city_id หรือ city, state และ country ทั้งหมดอีกด้วย (แต่ state จะระบุหรือไม่ก็ได้ หากที่อยู่ไม่ได้อยู่ในสหรัฐฯ) นอกจากนี้ ช่อง zip จะระบุหรือไม่ก็ได้เช่นกัน เว้นแต่ว่าที่อยู่จะอยู่ในสหรัฐฯ โปรดดูข้อมูลเกี่ยวกับการสร้าง ID ของเมืองภายหลังในเอกสารนี้

object

longitude

ลองจิจูดแบบใช้ทศนิยม ต้องระบุสำหรับ location

string

state

ชื่อรัฐ (หรือเทียบเท่าในท้องถิ่น)

string

street

ที่อยู่ ต้องระบุสำหรับ location

string

zip

รหัสไปรษณีย์ของตำแหน่งที่ตั้ง (หรือเทียบเท่าในท้องถิ่น)

string

location_page_id

ID ของเพจ Facebook ที่คุณต้องการเพิ่มเป็นตำแหน่งที่ตั้ง หากไม่ได้ระบุช่องนี้ คุณต้องระบุช่อง location, place_topics และ phone แทนเพื่อสร้างเพจที่เป็นตำแหน่งที่ตั้งใหม่

numeric string

main_page_id

ID สำหรับเพจ Facebook ที่เป็นเพจหลักของตำแหน่งที่ตั้งทั้งหมด ฟิลด์นี้เป็นฟิลด์ที่ต้องระบุ

numeric string

permanently_closed

สถานที่นี้ปิดถาวรหรือไม่

bool

phone

หมายเลขโทรศัพท์สำหรับสถานที่นี้ ต้องระบุ หากไม่มีการระบุ location_page_id

string

pickup_options

รายการตัวเลือกการรับสินค้าจะใช้ได้ที่ตำแหน่งที่ตั้งนี้

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

หัวข้อสถานที่สำหรับตำแหน่งที่ตั้งนี้ ต้องระบุ หากไม่มีการระบุ location_page_id

int[]

store_number

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

int

temporary_status

ระบุว่าธุรกิจที่ตรงกับเพจกำลังประกอบกิจการแตกต่างไปจากปกติอย่างไร หากตั้งค่าเป็น differently_open โปรดใช้กับ differently_open_offerings เพื่อกำหนดสถานะ

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

การตอบกลับ

เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับดังต่อไปนี้

{
  "success": true
}

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

การลบ

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

DELETE /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "DELETE",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

  • จะต้องใช้โทเค็นการเข้าถึงเพจเพื่อลบตำแหน่งที่ตั้งออกจากเพจหลัก

ช่อง

ต้องระบุทุกฟิลด์

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

main_page_id

ID ของเพจ Facebook หลักสำหรับตำแหน่งที่ตั้งนี้

numeric string

store_number

ID ที่ผู้พัฒนากำหนดสำหรับตำแหน่งที่ตั้งนี้

numeric string

location_page_id

ID ที่ Facebook กำหนดสำหรับตำแหน่งที่ตั้งนี้

numeric string

การตอบกลับ

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

{
  "success": true
}

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

การอัพเดต

ระบบจะรองรับตำแหน่งข้อมูลนี้สำหรับประสบการณ์ใช้งานเพจแบบใหม่

POST /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

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

ช่อง

หากต้องการอัพเดต โปรดใส่ช่องการเผยแพร่ที่จำเป็นต้องระบุและช่องการเผยแพร่อื่นๆ ที่คุณต้องการเปลี่ยนแปลงค่า

การตอบกลับ

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

{
  "success": true
}

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