استطلاعات الرأي

يمكنك استخدام API لإعداد استطلاعات رأي خلال عمليات بث فيديو البث المباشر المتوفرة بالحالة LIVE، وإدارتها. يتم تمثيل استطلاعات الرأي بواسطة كائنات VideoPoll وتتألف من VideoPollOptions التي تمثل إجابات محتملة على السؤال الموجود ضمن استطلاع الرأي.

إنشاء استطلاع رأي

لإنشاء استطلاع رأي حول عملية بث فيديو البث المباشر، يمكنك إرسال طلب إلى:

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

يجب أن يحتوي الكائن الهدف LiveVideo على الحالة status بالقيمة LIVE حتى يتم إنشاء VideoPoll. عند نجاح العملية، ستستجيب API بمعرف كائن VideoPoll.

معلمات سلسلة الاستعلام

  • {question} — سؤال استطلاع الرأي.
  • {options} — مصفوفة من الإجابات المحتملة.

يمكنك الرجوع إلى مرجع عنصر الربط استطلاعات فيديو البث المباشر للحصول على قائمة كاملة بمعلمات سلسلة الاستعلام التي يمكنك تضمينها عند إنشاء استطلاع رأي.

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول الصفحة أو المستخدم الذي أنشأ LiveVideo.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

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();

عينة من الاستجابة

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

إغلاق استطلاع رأي

لإغلاق استطلاع رأي خلال بث فيديو البث المباشر بعد أن حدد الشخص خيار استطلاع الرأي، يمكنك إرسال طلب إلى:

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

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول المستخدم الذي أنشأ VideoPoll.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

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();

عينة من الاستجابة

{
  "success": true
}

إعادة فتح استطلاع رأي

لإعادة فتح استطلاع رأي مُغلق بحيث يمكن للشخص تغيير خيار استطلاع الرأي الخاص به، أرسل طلبًا إلى:

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

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول المستخدم الذي أنشأ VideoPoll.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

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();

عينة من الاستجابة

{
  "success": true
}

عرض نتائج استطلاع الرأي

لتكوين استطلاع رأي حتى يعرض النتائج بعد أن ينتهي الشخص من التصويت، أرسل طلبًا إلى:

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

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول المستخدم الذي أنشأ VideoPoll.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

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();

عينة من الاستجابة

{
  "success": true
}

الحصول على خيارات استطلاع الرأي

للحصول على إجابات محتملة على أسئلة استطلاع الرأي، يمكنك إرسال طلب إلى:

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

للحصول على قائمة بالحقول وعناصر الربط المتوفرة، يمكنك الرجوع إلى مرجع VideoPoll.

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول المستخدم الذي أنشأ VideoPoll.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

يمكن الحصول على إجابات محتملة على أسئلة استطلاع الرأي:

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();

عينة من الاستجابة

كائن يحتوي على قائمة بالإجابات المحتملة (قائمة تضم 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
}

الحصول على عدد أصوات خيار استطلاع الرأي

للحصول على عدد الأصوات المسجّلة على خيار استطلاع الرأي، يمكنك إرسال طلب إلى:

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

المتطلبات

النوعالوصف

رموز الوصول

An access token of a User who created the VideoPollOption.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


رموز الوصول

رمز الوصول ذاته المُستخدم لإنشاء LiveVideo أو عملية بث.

عينة من الطلب

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();

عينة من الاستجابة

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

الحصول على كل أصوات خيار استطلاع الرأي

للحصول على عدد الأصوات لكل الإجابات المحتملة حول استطلاع الرأي، استخدم توسيع الحقل في الحقل poll_options من أجل أن تتضمن الاستجابة الحقل total_votes حول كائنات VideoPollOptions التي يتم إرجاعها:

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

المتطلبات

النوعالوصف

رموز الوصول

رمز وصول المستخدم الذي أنشأ LiveVideo.

الميزات

بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


الأذونات

بالنسبة لكائن VideoPoll على LiveVideo في مستخدم:


بالنسبة لكائن VideoPoll على LiveVideo في صفحة:


بالنسبة لكائن VideoPoll على LiveVideo في مجموعة:


عينة من الطلب

يمكن الحصول على كل خيارات VideoPollOptions والحقلين text وtotal_votes حول 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();

عينة من الاستجابة

{
  "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
}