Encuestas

Puedes utilizar la API para crear y administrar encuestas durante transmisiones de video en vivo que tengan el estado LIVE. Las encuestas están representadas por objetos de encuestas de video y consisten en opciones de respuesta de la encuesta de video, que muestran respuestas posibles a la pregunta de la encuesta.

Crear una encuesta

Para crear una encuesta durante una transmisión de video en vivo, envía una solicitud a:

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

El objeto objetivo de video en vivo debe tener statusLIVE para que la encuesta de video se cree. Si la solicitud se procesa correctamente, la API responderá con el identificador del objeto de la encuesta de video.

Parámetros de la cadena de consulta

  • {question}: la pregunta de la encuesta.
  • {options}: una serie de posibles respuestas.

Consulta la referencia de perímetros de las encuestas de los videos en vivo a fin de obtener una lista completa de los parámetros de cadena de consulta que puedes incluir al crear una encuesta.

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario o una página que creó el video en vivo.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

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

Ejemplo de respuesta

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

Cerrar una encuesta

Si deseas cerrar una encuesta en una transmisión de un video en vivo después de que una persona seleccionó una opción de respuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó la encuesta de video.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

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

Ejemplo de respuesta

{
  "success": true
}

Reabrir una encuesta

Si deseas reabrir una encuesta cerrada a fin de que una persona pueda cambiar su opción de respuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó la encuesta de video.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

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

Ejemplo de respuesta

{
  "success": true
}

Mostrar los resultados de una encuesta

Para configurar que en una encuesta se muestren los resultados después de que una persona votó, envía una solicitud a:

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

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó la encuesta de video.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

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

Ejemplo de respuesta

{
  "success": true
}

Obtener opciones de la encuesta

Para obtener las posibles respuestas a una encuesta, envía una solicitud a:

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

Consulta las referencias de la encuesta de video para obtener una lista de los campos y perímetros disponibles.

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó la encuesta de video.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

Obtener las posibles respuestas a una encuesta:

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

Ejemplo de respuesta

Un objeto que contiene una lista de posibles respuestas (una lista de opciones de encuestas de video).

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

Obtener los votos relacionados con las opciones de respuesta

Para obtener la cantidad de votos relacionados con una opción de respuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó la opción de respuesta de la encuesta de video.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Tokens de acceso

El mismo token de acceso utilizado para crear el video en vivo o la transmisión.

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Obtener todos los votos relacionados con las opciones de respuesta

Si deseas obtener la cantidad de votos de cada respuesta posible en una encuesta, usa la función de expansión de campos en el campo poll_options a fin de que la respuesta incluya el campo total_votes en cualquier opción de respuesta de video que se devuelva:

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

Requisitos

TipoDescripción

Tokens de acceso

Token de acceso de un usuario que creó el video en vivo.

Funciones

Encuesta de video en un video en vivo en un grupo:


Permisos

Encuesta de video en un video en vivo en un usuario:


Encuesta de video en un video en vivo en una página:


Encuesta de video en un video en vivo en un grupo:


Ejemplo de solicitud

Obtiene todas las opciones de respuesta de videos y los campos text y total_votes de una encuesta de video.

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

Ejemplo de respuesta

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