Sử dụng yêu cầu không đồng bộ để tạo quảng cáo và gửi nhiều yêu cầu quảng cáo mà không cần phải chặn. Chỉ định một URL để gọi sau khi yêu cầu hoàn tất hoặc kiểm tra trạng thái của yêu cầu này. Hãy xem Tài liệu tham khảo về quảng cáo.
Cách hiệu quả nhất để quản lý quảng cáo là thông qua yêu cầu hàng loạt. Hãy sử dụng cách này để thực hiện một số yêu cầu phổ biến hơn.
Ví dụ: lấy trạng thái của nhóm yêu cầu không đồng bộ như sau:
curl -G \
-d 'fields=name,success_count,error_count,is_completed' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
Lệnh gọi này sẽ trả về trạng thái chung của nhóm yêu cầu không đồng bộ dưới dạng một đối tượng JSON. Không phải trường nào cũng hiển thị theo mặc định. Nếu bạn muốn đưa các trường không phải trường mặc định vào truy vấn của mình, hãy chỉ định những trường đó trong fields
, chẳng hạn như fields=id,owner_id,name,total_count,success_count,error_count,is_completed
.
Tên | Mô tả |
---|---|
loại: số nguyên | Hiển thị theo mặc định.
|
loại: số nguyên | Hiển thị theo mặc định. Đối tượng sở hữu nhóm yêu cầu không đồng bộ này. Đối với yêu cầu không đồng bộ trên quảng cáo, |
loại: chuỗi | Hiển thị theo mặc định. Tên của nhóm yêu cầu không đồng bộ này. |
loại: boolean | Hiển thị theo mặc định. Các yêu cầu không đồng bộ trong nhóm này đã hoàn tất |
loại: số nguyên | Không hiển thị theo mặc định. Tổng số lượng yêu cầu của nhóm yêu cầu này |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu chưa được phân phối. |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đang xử lý. |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đã hoàn tất và thành công. |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đã hoàn tất và không thành công. |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu bị người dùng hủy |
loại: chuỗi | Không hiển thị theo mặc định. URI thông báo cho nhóm yêu cầu không đồng bộ này. |
loại: chuỗi | Không hiển thị theo mặc định. Cách nhận thông báo. Giá trị hợp lệ bao gồm:
|
Sau khi bạn lấy trạng thái chung của nhóm yêu cầu không đồng bộ, hãy lấy thông tin chi tiết về từng yêu cầu như sau:
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests
Lệnh gọi này sẽ trả về trạng thái và thông tin chi tiết của từng yêu cầu bên trong nhóm yêu cầu không đồng bộ. Đối với trường hợp tạo quảng cáo không đồng bộ, hãy gửi yêu cầu để tạo một quảng cáo. Thông số trạng thái sẽ được dùng để lọc yêu cầu theo trạng thái của chính yêu cầu đó và có thể là bất kỳ tổ hợp giá trị nào dưới đây:
initial
- Chưa được xử lý. in_progress
- Yêu cầu đang xử lý success
- Yêu cầu đã hoàn tất và thành công. error
- Yêu cầu đã hoàn tất và không thành công canceled
- Yêu cầu bị người dùng hủyPhản hồi là một mảng JSON gồm các trường mặc định. Nếu bạn muốn thêm bất kỳ trường nào không phải trường mặc định, hãy chỉ định trường đó trong fields
, chẳng hạn như fields=id,scope_object_id,status,result,input,async_request_set
.
Tên | Mô tả |
---|---|
loại: số nguyên | Hiển thị theo mặc định. ID yêu cầu không đồng bộ riêng lẻ |
loại: số nguyên | Hiển thị theo mặc định. ID chính của đối tượng mà yêu cầu này tạo. Nếu bạn tạo một quảng cáo, đây sẽ là ID nhóm quảng cáo cho quảng cáo mới. |
loại: chuỗi | Hiển thị theo mặc định. Trạng thái của yêu cầu không đồng bộ này. Tùy chọn:
|
loại: mảng | Không hiển thị theo mặc định. Nếu yêu cầu đã hoàn tất, kết quả của yêu cầu này sẽ hiển thị.
|
loại: đối tượng | Không hiển thị theo mặc định. Đầu vào gốc cho yêu cầu không đồng bộ này. Nếu bạn tạo một quảng cáo, đầu vào sẽ là |
loại: đối tượng | Không hiển thị theo mặc định. Nhóm yêu cầu không đồng bộ chứa yêu cầu riêng lẻ này |
Để lấy thông tin chi tiết về một yêu cầu không đồng bộ cụ thể, hãy thực hiện lệnh gọi dưới đây:
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests
Lệnh gọi này sẽ trả về một đối tượng JSON gồm các trường được nêu ở trên.
Bạn có thể tạo nhiều nhóm yêu cầu quảng cáo không đồng bộ. Cách truy vấn mọi nhóm yêu cầu quảng cáo không đồng bộ cho một tài khoản quảng cáo như sau:
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/asyncadrequestsets
Lệnh gọi này sẽ trả về một mảng JSON gồm các đối tượng nhóm yêu cầu không đồng bộ. Mỗi đối tượng đều giống như được chỉ định trong phần nhóm yêu cầu không đồng bộ. Bạn có thể lọc kết quả bằng trường is_completed
. Nếu is_completed=true
, bạn sẽ chỉ thấy nhóm yêu cầu không đồng bộ đã hoàn tất.
Bạn có thể thực hiện một lệnh gọi không đồng bộ để tạo quảng cáo trong các nhóm quảng cáo khác nhau. Để lấy trạng thái của từng nhóm quảng cáo, hãy lấy mọi yêu cầu tạo quảng cáo cho một nhóm quảng cáo như sau:
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<AD_SET_ID>/asyncadrequests
Lệnh gọi này sẽ trả về một mảng JSON gồm các đối tượng yêu cầu không đồng bộ. Các trường trạng thái, bộ lọc trường và yêu cầu không đồng bộ sẽ giống như API https://graph.facebook.com/<API_VERSION>/<REQUEST_SET_ID>/requests
.
Bạn có thể thay đổi name
, notification_uri
và notification_mode
cho một nhóm yêu cầu không đồng bộ.
curl \
-F 'name=New Name' \
-F 'notification_mode=OFF' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
Lệnh gọi này sẽ trả về true
khi cập nhật thành công. Bạn chỉ có thể thay đổi notification_uri
và notification_mode
trước khi thông báo được gửi.
Bạn có thể hủy một yêu cầu không đồng bộ, nhưng yêu cầu này chỉ hủy được khi chưa được xử lý.
curl -X DELETE \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_ID>
Lệnh gọi này sẽ trả về true
khi hủy thành công. Bạn cũng có thể hủy các yêu cầu chưa xử lý trong nhóm yêu cầu không đồng bộ như sau:
curl -X DELETE \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
Lệnh gọi này sẽ trả về true
khi hủy thành công.
Lấy trạng thái của một yêu cầu không đồng bộ cụ thể:
//pretty=true for command line readable output
curl -G \
-d "id=6012384857989" \
-d "pretty=true" \
-d "access_token=_____" \
"https://graph.facebook.com/v21.0
/"
Trả về các giá trị:
{ "id": "6012384857989", "owner_id": 12345, "name": "testasyncset", "is_completed": true }
Lấy kết quả của yêu cầu:
curl -G \
-d "id=6012384857989" \
-d "pretty=true" \
-d "fields=result" \
-d "access_token=_____" \
"https://graph.facebook.com/v21.0
/requests"
Trả về:
{ "data": [ { "result": { "id": "6012384860989" }, "id": "6012384858389" }, { "result": { "id": "6012384858789" }, "id": "6012384858189" } ], "paging": { "cursors": { "after": "___", "before": "___" } } }
Lấy danh sách các nhóm yêu cầu cho một tài khoản quảng cáo:
curl -G \
-d "is_completed=1" \
-d "pretty=true" \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/act_71597454/asyncadrequestsets"
Trả về:
{ "data": [ { "id": "6012384253789", "owner_id": 71597454, "name": "testasyncset", "is_completed": true }, ], "paging": { "cursors": { "after": "___", "before": "___" } } }
Lấy danh sách các yêu cầu cho một chiến dịch:
curl -G \
-d "status=SUCCESS,ERROR" \
-d "pretty=true" \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/6008248529789/asyncadrequests"
Trả về các giá trị:
{ "data": [ { "id": "6012384951789", "scope_object_id": 6008248529789, "status": "SUCCESS" }, ], "paging": { "cursors": { "after": "___", "before": "___" } } }
Với yêu cầu hàng loạt, bạn có thể kết hợp một số lệnh gọi API Đồ thị thành một yêu cầu HTTP. API Marketing sẽ chia yêu cầu này thành các yêu cầu thành phần tương ứng. Do vậy, yêu cầu hàng loạt trở thành cách hiệu quả nhất để tương tác với API Marketing. Để đạt được hiệu quả cao hơn nữa, bạn có thể gửi các yêu cầu hàng loạt song song qua những luồng xử lý riêng biệt.
Mỗi yêu cầu hàng loạt có thể chứa tối đa 50 yêu cầu. Đối với trường hợp tạo quảng cáo, mỗi yêu cầu hàng loạt chỉ nên chứa tối đa 10 quảng cáo.
Yêu cầu hàng loạt cho quảng cáo, nội dung quảng cáo và nhóm quảng cáo rất giống nhau nên chúng tôi không thảo luận riêng biệt ở đây. Để biết thêm thông tin, hãy xem phần Yêu cầu hàng loạt trong API Đồ thị và ETag.
Bạn có thể cung cấp nội dung quảng cáo và các đối tượng quảng cáo khác trong một yêu cầu hàng loạt. Ví dụ: bạn có thể tạo 3 quảng cáo dựa trên 1 nội dung quảng cáo và 3 quy cách nhắm mục tiêu khác nhau. Trước tiên, hãy xác định Nội dung quảng cáo của bạn, sau đó tham chiếu đến nội dung này khi bạn tạo từng quảng cáo:
curl -F 'access_token=______' -F 'test1=@./test1.jpg' -F 'batch=[ { "method": "POST", "name": "create_adimage", "relative_url": "<API_VERSION>/act_187687683/adimages", "attached_files": "test1" }, { "method": "POST", "name": "create_creative", "relative_url": "<API_VERSION>/act_187687683/adcreatives", "attached_files": "test1", "body": "name=sample creative&object_story_spec={\"link_data\": {\"image_hash\": \"{result=create_adimage:$.images.*.hash}\", \"link\": \"https://www.test12345.com\", \"message\": \"this is a sample message\"}, \"page_id\":\"12345678\"}°rees_of_freedom_spec={\"creative_features_spec\": {\"standard_enhancements\": {\"enroll_status\": \"OPT_OUT\"}}}" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test1" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test2" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test3" } ]' https://graph.facebook.com/
Phản hồi sẽ bao gồm các mã phản hồi riêng biệt cho từng yêu cầu và phản hồi API Đồ thị tiêu chuẩn. Để biết chi tiết, hãy xem phần Tạo nhiều yêu cầu API.
Quy trình yêu cầu hàng loạt sử dụng định dạng biểu thức JSONPath để tham chiếu đến các yêu cầu trước đó.
Bạn có thể cập nhật quảng cáo bằng yêu cầu hàng loạt. Cách cập nhật giá thầu cho 3 quảng cáo như sau:
curl -F 'access_token=____' -F 'batch=[ { "method": "POST", "relative_url": "<API_VERSION>/6004251715639", "body": "redownload=1&name=new name" }, { "method": "POST", "relative_url": <API_VERSION>/v6004251716039", "body": "redownload=1&name=new name" }, { "method": "POST", "relative_url": "<API_VERSION>/6004251715839", "body": "redownload=1&name=new name" } ]' https://graph.facebook.com
Nếu đưa redownload=1
vào URL tương đối, bạn sẽ lấy được đầy đủ thông tin chi tiết về quảng cáo, bao gồm cả ID quảng cáo. Nhờ vậy, bạn có thể xác định những quảng cáo mình đã cập nhật.
Nếu bạn muốn cập nhật nội dung quảng cáo, hãy chỉ định toàn bộ nội dung hoặc cung cấp một ID nội dung mới. Nguyên nhân là vì bạn không thể chỉnh sửa Nội dung quảng cáo sau khi nội dung đó được tạo, ngoại trừ tên và trạng thái chạy.
Nếu bạn có lượng lớn quảng cáo, hãy chia yêu cầu thành nhiều yêu cầu trong một yêu cầu hàng loạt như sau:
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/?ids=6003356308839,6004164369439&fields=<comma separated list of fields>" }, { "method": "GET", "relative_url": "<API_VERSION>/6003356307839/ads&fields=<comma separated list of fields>" }, { "method": "GET", "relative_url": "<API_VERSION>/act_187687683/ads?adset_ids=[6003356307839, 6004164259439]&fields=<comma separated list of fields>" } ]' https://graph.facebook.com
6003356308839
và 6004164369439
là ID quảng cáo, còn 6003356307839
và 6004164259439
là ID nhóm quảng cáo.
Nếu bạn có lượng lớn Thông tin chi tiết về quảng cáo, hãy chia yêu cầu thành nhiều yêu cầu trong một yêu cầu hàng loạt như sau:
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/act_19643108/insights?filtering=[{field:'ad.id',operator:'IN',value:[6003356308839,6004164369439]}]" }, { "method": "GET", "relative_url": "<API_VERSION>/6003356308839/insights" }, { "method": "GET", "relative_url": "<API_VERSION>/act_187687683/insights?filtering=[{field:'adset.id',operator:'IN',value:[6003356307839, 6004164259439]}]" } ]' https://graph.facebook.com
Trong ví dụ này, 6003356308839
và 6004164369439
là ID quảng cáo, còn 6003356307839
và 6004164259439
là ID nhóm quảng cáo.
Đối với Tài khoản quảng cáo có lượng lớn quảng cáo, bạn không nên sử dụng act_<account_ID>/adgroupstats
vì điểm cuối này có thể khiến yêu cầu bị hết thời gian chờ.
Bạn có thể yêu cầu tối đa 50 dữ liệu ước tính số người tiếp cận trong một yêu cầu hàng loạt. Ví dụ dưới đây minh họa cách yêu cầu dữ liệu ước tính số người tiếp cận cho 2 quy cách nhắm mục tiêu khác nhau:
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/act_600335/reachestimate?targeting_spec={'geo_locations': {'countries':['US']}}" }, { "method": "GET", "relative_url": "<API_VERSION>/act_600335/reachestimate?targeting_spec={'geo_locations': {'countries':['FR']}}" } ]' https://graph.facebook.com
Với API Hàng loạt, bạn có thể tạo hàng loạt yêu cầu rồi gửi các yêu cầu đó theo kiểu không đồng bộ. Bạn có thể nhóm một số lệnh gọi API Đồ thị thành một yêu cầu HTTP rồi thực thi chúng theo cách không đồng bộ mà không cần phải chặn. Ngoài ra, bạn có thể chỉ định phần phụ thuộc giữa các hoạt động có liên quan.
Facebook sẽ xử lý từng hoạt động độc lập theo quy trình song song và xử lý các hoạt động phụ thuộc của bạn theo tuần tự. Mỗi lệnh gọi API có thể chứa tối đa 1.000 yêu cầu.
Cách thực hiện lệnh gọi API Hàng loạt như sau:
curl \
-F "access_token=___" \
-F "name=asyncbatchreqs" \
-F "adbatch=<an array of requests>"\
"https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/async_batch_requests"
Hãy cung cấp một mảng gồm các yêu cầu HTTP POST
dưới dạng mảng JSON
. Mỗi yêu cầu có:
name
relative_url
- phần URL sau graph.facebook.combody
API này sẽ trả về một ID mà bạn dùng để truy vấn tiến độ của các yêu cầu.
Ví dụ: tạo một chiến dịch bằng nhóm quảng cáo có Định dạng JSONPath để tham chiếu đến các yêu cầu trước đó như sau:
curl \ -F "access_token=___" \ -F "name=batchapiexample" \ -F "adbatch=[ { 'name': 'create-campaign', 'relative_url': 'act_123456/campaigns', 'body': 'name%3DTest+Campaign%26objective%3DLINK_CLICKS%26status%3DPAUSED%26buying_type%3DAUCTION', }, { 'name': 'create-adset', 'relative_url': 'act_123456/adsets', 'body': 'targeting%3D%7B%22geo_locations%22%3A%7B%22countries%22%3A%5B%22US%22%5D%7D%7D%26daily_budget%3D5000%26campaign_id%3D%7Bresult%3Dcreate-campaign%3A%24.id%7D%26bid_amount%3D2%26name%3DFirst%2BAd%2BSet%20Test%26billing_event%3DLINK_CLICKS', }, ]" \ https://graph.facebook.com/<API_VERSION>/act_123456/async_batch_requests
Cách lấy trạng thái nhóm yêu cầu như sau:
curl –G \
-d "access_token=___" \
-d "fields=<comma separated list of fields>" \
"https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>"
Lệnh gọi này sẽ trả về trạng thái chung của các nhóm yêu cầu không đồng bộ dưới dạng đối tượng JSON. Không phải trường nào cũng được trả về theo mặc định. Nếu bạn muốn thêm các trường đó, hãy chỉ định fields
, chẳng hạn như fields=id,owner_id,name,total_count,success_count,error_count,is_completed
Tên | Mô tả |
---|---|
loại: số nguyên | Hiển thị theo mặc định.
|
loại: số nguyên | Hiển thị theo mặc định. Đối tượng sở hữu nhóm yêu cầu không đồng bộ này. Nếu bạn tạo quảng cáo, |
loại: chuỗi | Hiển thị theo mặc định. Tên của nhóm yêu cầu không đồng bộ này |
loại: boolean | Hiển thị theo mặc định. Mọi yêu cầu không đồng bộ trong nhóm đã hoàn tất |
loại: số nguyên | Không hiển thị theo mặc định. Tổng số lượng yêu cầu cho nhóm yêu cầu này |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu chưa được phân phối |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đang xử lý |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đã hoàn tất và thành công |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu đã hoàn tất và không thành công |
loại: số nguyên | Không hiển thị theo mặc định. Số lượng yêu cầu bị người dùng hủy |
loại: chuỗi | Không hiển thị theo mặc định. URI thông báo cho nhóm yêu cầu không đồng bộ này. |
loại: chuỗi | Không hiển thị theo mặc định. Cách nhận thông báo. Giá trị hợp lệ:
|
loại: chuỗi | Không hiển thị theo mặc định. Kết quả gửi thông báo. |
loại: chuỗi | Không hiển thị theo mặc định. Trạng thái thông báo: |
Sau khi lấy trạng thái chung, bạn có thể lấy thông tin chi tiết về từng yêu cầu như sau:
curl –G \
-d "access_token=___" \
-d "fields=<comma separated list of fields>" \
"https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests"
Lệnh gọi này sẽ trả về thông tin chi tiết dưới dạng mảng JSON. Nếu bạn muốn thêm các trường không phải trường mặc định, hãy chỉ định những trường đó trong fields
, chẳng hạn như fields=id,scope_object_id,status,result,input,async_request_set
.
Tên | Mô tả |
---|---|
loại: số nguyên | Hiển thị theo mặc định. ID của yêu cầu không đồng bộ riêng lẻ |
loại: số nguyên | Hiển thị theo mặc định. ID chính của đối tượng mà yêu cầu này tạo. Nếu bạn tạo quảng cáo, đây sẽ là ID nhóm quảng cáo cho quảng cáo mới. |
loại: chuỗi | Hiển thị theo mặc định. Trạng thái của yêu cầu không đồng bộ này:
|
loại: mảng | Không hiển thị theo mặc định. Nếu yêu cầu hoàn tất, kết quả sẽ hiển thị. Trong trường hợp thành công, kết quả này sẽ giống như API không phải API không đồng bộ. Ví dụ: nếu bạn tạo quảng cáo, kết quả sẽ là ID quảng cáo mới. Trong trường hợp gặp lỗi:
|
loại: đối tượng | Không hiển thị theo mặc định. Đầu vào gốc cho yêu cầu này. Nếu bạn tạo một quảng cáo, đầu vào sẽ là |
loại: đối tượng | Không hiển thị theo mặc định. Nhóm yêu cầu không đồng bộ chứa yêu cầu này. |
Bạn có thể tạo nhiều nhóm yêu cầu API Hàng loạt. Cách truy vấn mọi nhóm yêu cầu trong một tài khoản quảng cáo như sau:
curl –G \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/async_requests"
API Marketing hỗ trợ ETag. Nhờ vậy, bạn có thể biết liệu dữ liệu mình truy vấn có thay đổi so với lần kiểm tra gần đây nhất hay không. Cách hoạt động:
304 – Not Modified
và không có dữ liệu nào được trả về.Mặc dù ETag giúp giảm lưu lượng truy cập dữ liệu, nhưng If-None-Match GET
vẫn sẽ tính vào giới hạn tốc độ cho ứng dụng của bạn.
ETag được tính dựa trên toàn bộ phản hồi từ lệnh gọi API, bao gồm cả định dạng của phản hồi. Định dạng này có thể chịu ảnh hưởng từ chuỗi tác nhân người dùng. Do đó, bạn cần duy trì sự nhất quán của tác nhân người dùng giữa các lệnh gọi được thực hiện từ cùng một máy khách.
Dưới đây là cách kiểm tra xem tài khoản quảng cáo của người dùng có thay đổi hay không.
Bước 1: Xác định ETag cho dữ liệu hiện tại
curl -i "https://graph.beta.facebook.com/me/adaccounts?access_token=___"
Phản hồi sẽ như sau:
HTTP/1.1 200 OK Access-Control-Allow-Origin: * Cache-Control: private, no-cache, no-store, must-revalidate Content-Type: text/javascript; charset=UTF-8 ETag: "7776cdb01f44354af8bfa4db0c56eebcb1378975" Expires: Sat, 01 Jan 2000 00:00:00 GMT Pragma: no-cache X-FB-Rev: 495685 X-FB-Server: 10.30.149.204 X-FB-Debug: CWbHcogdwUE8saMv6ML+8FacXFrE8ufhjjwxU2dQWaA= X-Cnection: close Date: Mon, 16 Jan 2012 12:07:44 GMT Content-Length: 3273 {"data":[{"id":"act.......
Trong ví dụ này, ETag là "7776cdb01f44354af8bfa4db0c56eebcb1378975"
. Lưu ý rằng ETag có dấu ngoặc kép ("
).
Bước 2: Xác định xem dữ liệu có thay đổi gì hay không
curl -i -H "If-None-Match: \"7776cdb01f44354af8bfa4db0c56eebcb1378975\"" "https://graph.beta.facebook.com/me/adaccounts?access_token=___"
Nếu không có gì thay đổi, phản hồi sẽ như sau:
HTTP/1.1 304 Not Modified Access-Control-Allow-Origin: * Cache-Control: private, no-cache, no-store, must-revalidate Content-Type: text/javascript; charset=UTF-8 Expires: Sat, 01 Jan 2000 00:00:00 GMT Pragma: no-cache X-FB-Rev: 495685 X-FB-Server: 10.30.177.190 X-FB-Debug: ImBhat3k07Nez5FvuS2lPWU0U2xxmxD4B3k9ua4Sk7Q= X-Cnection: close Date: Mon, 16 Jan 2012 12:09:17 GMT Content-Length: 0
Lưu ý phản hồi 304 Not Modified
. Nếu dữ liệu có thay đổi, hệ thống sẽ trả về một phản hồi API thông thường.
Dưới đây là ví dụ về yêu cầu hàng loạt để kiểm tra xem quảng cáo của người dùng có thay đổi hay không.
Bước 1: Xác định ETag cho dữ liệu hiện tại
curl -i "curl -F 'access_token=___' -F 'batch=[ {"method":"GET", "relative_url": "?ids=6003356308839,6004164369439" }, {"method":"GET", "relative_url": "act_12345678/ads?campaign_ids=[6003356307839, 6004164259439]"}]' https://graph.facebook.com"
Phản hồi sẽ chứa các giá trị ETag như sau:
...{"name":"ETag","value":"\"21d371640127490b2ed0387e8af3f0f8c9eff012\""}... ...{"name":"ETag","value":"\"410e53bb257f116e8716e4ebcc76df1c567b87f4\""}...
Trong ví dụ này, các ETag là "21d371640127490b2ed0387e8af3f0f8c9eff012"
và "410e53bb257f116e8716e4ebcc76df1c567b87f4"
. Lưu ý rằng ETag có dấu ngoặc kép ("
).
Bước 2: Xác định xem dữ liệu có thay đổi gì hay không như sau:
curl -F 'access_token=___' -F 'batch=[ {"method":"GET", "headers":["If-None-Match: \"21d371640127490b2ed0387e8af3f0f8c9eff012\""], "relative_url": "?ids=6003356308839,6004164369439" }, {"method":"GET", "headers":["If-None-Match: \"410e53bb257f116e8716e4ebcc76df1c567b87f4\""], "relative_url": "act_12345678/ads?campaign_ids=[6003356307839, 6004164259439]"}]' https://graph.facebook.com
Nếu không có gì thay đổi, phản hồi sẽ như sau:
[{ "code": 304, . . . "body": null }, { "code": 304, . . . "body": null }]
Lưu ý phản hồi 304 Not Modified
. Nếu dữ liệu có thay đổi, chúng tôi sẽ trả về một phản hồi API thông thường.