Tài liệu này đã được cập nhật.
Bản dịch sang Tiếng Việt chưa hoàn tất.
Cập nhật bằng tiếng Anh: 15 tháng 12, 2023

Cuộc thăm dò ý kiến

Bạn có thể sử dụng API để tạo và quản lý cuộc thăm dò ý kiến về video phát trực tiếp có trạng thái là LIVE. Cuộc thăm dò ý kiến được biểu thị qua các đối tượng VideoPoll và bao gồm VideoPollOptions - biểu thị những câu trả lời có thể chọn cho câu hỏi thăm dò ý kiến.

Tạo cuộc thăm dò ý kiến

Để tạo cuộc thăm dò ý kiến về video phát trực tiếp, hãy gửi yêu cầu đến:

POST /{live-video-id}/polls?question={question}&options={options}

Đối tượng LiveVideo được nhắm mục tiêu phải có statusLIVE thì mới tạo được VideoPoll. Khi thành công, API sẽ trả về ID của đối tượng VideoPoll.

Thông số chuỗi truy vấn

  • {question} - Câu hỏi thăm dò ý kiến.
  • {options} - Mảng câu trả lời có thể chọn.

Hãy xem tài liệu tham khảo về cạnh Cuộc thăm dò ý kiến về video trực tiếp để biết danh sách đầy đủ các thông số chuỗi truy vấn mà bạn có thể đưa vào khi tạo cuộc thăm dò ý kiến.

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng hoặc Trang đã tạo LiveVideo.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

curl -i -X POST \
  "https://graph.facebook.com/v3.3/10214959467675612/polls
    ?question=What%20kind%20of%20bear%20is%20best%3F
    &options=%5B%22Black%20bear%22%2C%20%22Brown%20bear%22%2C%20%22That's%20a%20ridiculous%20question%22%5D
    &access_token={access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/10214959467675612/polls",
  new JSONObject("{\"question\":\"What kind of bear is best?\",\"options\":\"[\"Brown bear\", \"Black bear\", \"That is a stupid question\", \"Basically, there are two schools of thought\"]\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/10214959467675612/polls"
           parameters:@{ @"question": @"What kind of bear is best?",@"options": @"['Brown bear', 'Black bear', 'That is a stupid question', 'Basically, there are two schools of thought']",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/10214959467675612/polls',
  'POST',
  {"question":"What is the best bear?","options":"['Brown bear', 'Black bear', 'That is a stupid question', 'Basically, there are two schools of thought']"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/10214959467675612/polls',
    array (
      'question' => 'What is the best bear?',
      'options' => '["Brown bear", "Black bear", "That is a stupid question", "Basically, there are two schools of thought"]'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{
  "id": "2318567914888258"  // VideoPoll ID
}

Đóng cuộc thăm dò ý kiến

Để đóng cuộc thăm dò ý kiến về video phát trực tiếp sau khi người dùng chọn một lựa chọn thăm dò ý kiến, hãy gửi yêu cầu đến:

POST /{video-poll-id}?action=CLOSE

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo VideoPoll.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

curl -i -X POST \
 "https://graph.facebook.com/{video-poll-id}?action=CLOSE&access_token={access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{video-poll-id}",
  new JSONObject("{\"action\":\"CLOSE\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-id}"
           parameters:@{ @"action": @"CLOSE",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-id}',
  'POST',
  {"action":"CLOSE"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{video-poll-id}',
    array (
      'action' => 'CLOSE'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{
  "success": true
}

Mở lại cuộc thăm dò ý kiến

Nếu bạn muốn mở lại cuộc thăm dò ý kiến đã đóng để người dùng có thể thay đổi lựa chọn thăm dò ý kiến của họ, hãy gửi yêu cầu đến:

POST /{video-poll-id}?action=SHOW_VOTING

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo VideoPoll.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

curl -i -X POST \
 "https://graph.facebook.com/{video-poll-id}
   ?action=SHOW_VOTING
   &access_token={access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{video-poll-id}",
  new JSONObject("{\"action\":\"SHOW_VOTING\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-id}"
           parameters:@{ @"action": @"SHOW_VOTING",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-id}',
  'POST',
  {"action":"SHOW_VOTING"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{video-poll-id}',
    array (
      'action' => 'SHOW_VOTING'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{
  "success": true
}

Hiển thị kết quả thăm dò ý kiến

Nếu bạn muốn đặt cấu hình cuộc thăm dò ý kiến để hiển thị kết quả sau khi người dùng bình chọn, hãy gửi yêu cầu đến:

POST /{video-poll-id}?action=SHOW_RESULTS

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo VideoPoll.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

curl -i -X POST \
 "https://graph.facebook.com/{video-poll-id}
    ?action=SHOW_RESULTS
    &access_token={access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{video-poll-id}",
  new JSONObject("{\"action\":\"SHOW_RESULTS\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-id}"
           parameters:@{ @"action": @"SHOW_RESULTS",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-id}',
  'POST',
  {"action":"SHOW_RESULTS"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{video-poll-id}',
    array (
      'action' => 'SHOW_RESULTS'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{
  "success": true
}

Lấy lựa chọn thăm dò ý kiến

Để lấy các câu trả lời có thể chọn của cuộc thăm dò ý kiến, hãy gửi yêu cầu đến:

GET /{video-poll-id}?fields=poll_options
GET /{video-poll-id}/poll_options

Hãy xem tài liệu tham khảo về VideoPoll để biết danh sách các trường và cạnh có thể sử dụng.

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo VideoPoll.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

Lấy các câu trả lời có thể chọn của cuộc thăm dò ý kiến:

curl -i -X GET \
 "https://graph.intern.facebook.com/{video-poll-id}/poll_options
   ?fields=poll_options
   &access_token={access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{video-poll-id}",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "poll_options");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-id}"
           parameters:@{ @"fields": @"poll_options",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-id}',
  'GET',
  {"fields":"poll_options"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{video-poll-id}',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

Một đối tượng chứa danh sách các câu trả lời có thể chọn (danh sách VideoPollOptions).

{
  "poll_options":
    {
      "data": [
        {
          "text": "Brown bear",
          "id": 145049637
        },
        {
          "text": "Black bear",
          "id": 145049638
        }
        {
          "text": "That is a stupid question",
          "id": 145049639
        }
        {
          "text": "Basically, there are two schools of thought",
          "id": 145049640
        }
      ]
    },
  "id": 12345
}

Lấy lượt bình chọn cho lựa chọn thăm dò ý kiến

Để lấy số lượt bình chọn cho một lựa chọn thăm dò ý kiến, hãy gửi yêu cầu đến:

GET /{video-poll-option-id}?fields=total_votes

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo VideoPollOption.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Mã truy cập

Mã truy cập tương tự được dùng để tạo LiveVideo hoặc Nội dung phát.

Yêu cầu mẫu

curl -i -X GET \
 "https://graph.facebook.com/{video-poll-option-id}
   ?fields=total_votes 
   &access_token={access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{video-poll-option-id}",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "total_votes");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-option-id}"
           parameters:@{ @"fields": @"total_votes",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-option-id}',
  'GET',
  {"fields":"total_votes"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{video-poll-option-id}',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

    {
  "total_votes": 129,
  "id": "{video-poll-option}"
}

Lấy tất cả lượt bình chọn cho lựa chọn thăm dò ý kiến

Để lấy số lượt bình chọn cho từng câu trả lời có thể chọn trong cuộc thăm dò ý kiến, hãy dùng tính năng mở rộng trường trên trường poll_options để nội dung phản hồi bao gồm trường total_votes cho mọi VideoPollOptions được trả về:

GET /{video-poll-id}?fields=poll_options{total_votes}

Yêu cầu

LoạiMô tả

Mã truy cập

Mã truy cập của Người dùng đã tạo LiveVideo.

Tính năng

Đối với VideoPoll trên LiveVideo về một Nhóm:


Quyền

Đối với VideoPoll trên LiveVideo về một Người dùng:


Đối với VideoPoll trên LiveVideo về một Trang:


Đối với VideoPoll trên LiveVideo về một Nhóm:


Yêu cầu mẫu

Lấy tất cả VideoPollOptions và các trường text cũng như total_votes trên VideoPoll.

curl -i -X GET \
 "https://graph.intern.facebook.com/{video-poll-id}
   ?fields=poll_options{text,total_votes}
   &access_token={access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{video-poll-id}",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "poll_options{text,total_votes}");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{video-poll-id}"
           parameters:@{ @"fields": @"poll_options{text,total_votes}",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{video-poll-id}',
  'GET',
  {"fields":"poll_options{text,total_votes}"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{video-poll-id}',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{
  "poll_options":
    {
      "data": [
        {
          "text": "Brown Bear",
          "total_votes": 12,
          "id": 145049637
        },
        {
          "text": "Black Bear",
          "total_votes": 87,
          "id": 67890
        }
        {
          "text": "That's a stupid question",
          "total_votes": 45,
          "id": 145049639
        }
        {
          "text": "Basically, there are two schools of thought",
          "total_votes": 12,
          "id": 145049640
        }
      ]
    },
  "id": 12345
}