Phiên bản API Đồ thị

Vị trí Trang

Cạnh này thể hiện các vị trí trang khác nhau của một Trang kinh doanh chính. Ví dụ: các trang của từng nhà hàng trong một chuỗi các nhà hàng.

Tất cả ứng dụng đều có thể đọc cạnh này. Một số loại thao tác đăng chỉ dành cho những nhà phát triển nhất định.

Khi dùng thao tác đăng của API này, hãy làm theo hướng dẫn sau đây:

  • Không tính phí tạo hoặc xác nhận quyền sở hữu Trang.
  • Trước khi cho phép khách hàng tạo Trang, đầu tiên, bạn phải cung cấp phương tiện để họ xác nhận quyền sở hữu Trang hiện có nhằm tránh tình trạng trùng lặp Trang.
  • Đảm bảo rằng bạn chỉ tạo Trang liên kết với một địa chỉ thực, chứ không phải là Địa điểm giả hoặc ảo.
  • Nếu tạo Trang thay mặt khách hàng, bạn phải chuyển toàn quyền quản trị Trang đó theo yêu cầu của khách hàng.
  • Không tiết lộ quản trị viên của Trang cho các bên thứ ba khi chưa có sự đồng ý của khách hàng, trừ khi phải tiết lộ theo quy định của luật hiện hành, quy tắc hay quy định của bất kỳ tòa án/cơ quan chính phủ nào có thẩm quyền hoặc theo quy trình pháp lý.

Đọc

Trình khám phá API Đồ thị
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
}];

Quyền

  • Bạn cần có một mã truy cập hợp lệ để truy xuất thông tin vị trí.

Trường

Một mảng đối tượng Trang, mỗi đối tượng đại diện cho từng vị trí của doanh nghiệp.

Đăng

Bạn có thể thêm Trang dựa trên vị trí hiện có vào danh sách này bằng cách đăng trên cạnh này:

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
}];

Quyền

  • Bạn cần có mã truy cập trang để đăng vị trí hiện có lên trang.
  • Bạn cần có mã truy cập trang để tạo vị trí mới và thêm các vị trí này vào trang. Chỉ những nhà phát triển được chọn mới có thể dùng tính năng này.

Trường

TênMô tảLoại

differently_open_offerings

Dùng khi bạn đặt temporary_status thành differently_open để cho biết doanh nghiệp hoạt động khác với thường lệ, chẳng hạn như nhà hàng cung cấp dịch vụ mua mang về. Khóa liệt kê có thể là một trong các giá trị sau: ONLINE_SERVICES, DELIVERY, PICKUP, OTHER và được đặt thành true hoặc false. Ví dụ: nếu một nhà hàng tạm dừng giao hàng và cung cấp dịch vụ tự đến lấy, trường này sẽ là differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

Xác định giờ mở cửa của vị trí này.

object

{day}_{number}_{status}

Xác định một khoảng giờ mở cửa trong một ngày. Mỗi ngày có thể có 2 khoảng giờ khác nhau. {day} phải là 3 ký tự đầu tiên của ngày trong tuần, {number} phải là 1 hoặc 2 để cho phép hai khoảng giờ khác nhau cho mỗi ngày. {status} phải là open hoặc close để mô tả thời điểm bắt đầu hoặc kết thúc của khoảng thời gian. Ví dụ như mon_1_open có giá trị 17:00mon_1_close có giá trị 21:15 sẽ biểu thị một khoảng thời gian mở cửa từ 17:00 đến 21:15 vào thứ Hai hàng tuần.

string

ignore_warnings

Có nên tắt bất kỳ cảnh báo nào (không phải lỗi) do lệnh gọi API này hay không, chẳng hạn như vĩ độ và kinh độ không khớp với địa chỉ.

bool

is_franchise

Đây có phải là một vị trí nhượng quyền thương mại không?

bool

country

Tên quốc gia. Nếu không thêm city_id thì bạn phải có trường này.

string

city

Tên tỉnh/thành phố. Nếu không thêm city_id thì bạn phải có trường này.

string

city_id

ID tỉnh/thành phố. Đây là giá trị key của tùy chọn nhắm mục tiêu adcity. Nếu không thêm trường này, bạn phải có trường citycountry (cũng cần có statezip đối với các vị trí ở Hoa Kỳ).

int

latitude

Vĩ độ dạng số thập phân. Đây là trường bắt buộc đối với location.

string

location

Trường thông tin này xác định vị trí của trang này. Bạn cần có trường này nếu không chỉ định location_page_id. Từ điển này phải bao gồm khóa street (địa chỉ đường). Đồng thời phải có city_id hoặc tất cả city, statecountry (nhưng không bắt buộc phải có state nếu địa chỉ không phải ở Hoa Kỳ). Không bắt buộc phải có trường zip, trừ khi địa chỉ ở Hoa Kỳ. Vui lòng xem phần sau trong tài liệu này để biết thông tin về cách tạo ID tỉnh/thành phố.

object

longitude

Kinh độ dạng số thập phân. Đây là trường bắt buộc đối với location.

string

state

Tên tiểu bang (hoặc cấp tương đương).

string

street

Địa chỉ. Đây là trường bắt buộc đối với location.

string

zip

Mã zip của vị trí (hoặc cấp tương đương).

string

location_page_id

ID của Trang Facebook bạn muốn thêm làm vị trí. Nếu không thêm trường này, bạn phải chỉ định các trường location, place_topicsphone để tạo Trang vị trí mới.

numeric string

main_page_id

ID của Trang Facebook là trang chính của tất cả vị trí. Đây là trường thông tin bắt buộc.

numeric string

permanently_closed

Vị trí này có đóng cửa vĩnh viễn không?

bool

phone

Số điện thoại của vị trí này. Bạn cần có trường này nếu không chỉ định location_page_id.

string

pickup_options

Danh sách các tùy chọn đặt mua rồi tự đến lấy có sẵn tại địa điểm này.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Chủ đề địa điểm của vị trí này. Bạn cần có trường này nếu không chỉ định location_page_id.

int[]

store_number

ID tùy ý, do nhà phát triển xác định của vị trí này, thường dùng để liên kết lại với cơ sở dữ liệu nội bộ của các vị trí. Đây là trường bắt buộc.

int

temporary_status

Cho biết doanh nghiệp tương ứng với Trang đang hoạt động khác với thường lệ như thế nào. Nếu bạn đặt trường này thành differently_open, hãy sử dụng differently_open_offerings để thiết lập trạng thái.

liệt kê {differently_open, temporarily_closed, operating_as_usual, no_data}

Phản hồi

Nếu thành công, ứng dụng của bạn sẽ nhận được phản hồi sau:

{
  "success": true
}

Nếu không, hệ thống sẽ trả về một thông báo lỗi phù hợp.

Xóa

Bạn có thể xóa trang vị trí khỏi danh sách vị trí của trang chính bằng cách xóa trên cạnh sau:

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
}];

Quyền

  • Bạn cần có mã truy cập trang để xóa vị trí khỏi trang chính.

Trường

Tất cả trường thông tin đều là bắt buộc.

Tên Mô tả Loại

main_page_id

ID Trang Facebook chính của vị trí này.

numeric string

store_number

ID do nhà phát triển xác định của vị trí này.

numeric string

location_page_id

ID do Facebook xác định của vị trí này.

numeric string

Phản hồi

Nếu thành công:

{
  "success": true
}

Nếu không, hệ thống sẽ trả về một thông báo lỗi phù hợp.

Cập nhật

Điểm cuối này được hỗ trợ cho Trải nghiệm Trang mới.

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
}];

Quyền

  • Bạn cần có mã truy cập trang để cập nhật vị trí trên trang chính.

Trường

Để cập nhật, hãy thêm mọi trường đăng bắt buộc và mọi trường đăng khác mà bạn muốn thay đổi giá trị.

Phản hồi

Nếu thành công:

{
  "success": true
}

Nếu không, hệ thống sẽ trả về một thông báo lỗi phù hợp.