Este documento se ha actualizado.
La traducción en Español (España) no está disponible todavía.
Actualización del documento en inglés: 15 mar. 2023

Encuestas

Puedes usar la API para crear y administrar encuestas en transmisiones de vídeo en directo cuyo estado sea LIVE. Las encuestas se representan mediante objetos VideoPoll y se componen de VideoPollOptions, que representan posibles respuestas a la pregunta de la encuesta.

Crear una encuesta

Para crear una encuesta en una transmisión de vídeo en directo, envía una solicitud a:

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

El valor de status del objeto LiveVideo segmentado debe ser LIVE para poder crear el objeto VideoPoll. Si la operación se realiza correctamente, la API responderá con el identificador del objeto VideoPoll.

Parámetros de la cadena de consulta

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

En la referencia del perímetro de encuestas de vídeo en directo, puedes consultar una lista completa de los parámetros de la cadena de consulta que se pueden incluir al crear una encuesta.

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario o una página que creó el objeto LiveVideo.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo 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

Para cerrar una encuesta en una transmisión de vídeo en directo cuando un usuario haya seleccionado una opción de la encuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto VideoPoll.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo 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

A fin de reabrir una encuesta cerrada para que un usuario pueda cambiar su opción de la encuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto VideoPoll.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo 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 una encuesta con la finalidad de mostrar los resultados cuando un usuario ha votado, envía una solicitud a:

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

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto VideoPoll.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo 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 las opciones de una encuesta

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

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

Consulta una lista de los campos y los perímetros disponibles en la referencia de VideoPoll.

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto VideoPoll.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Ejemplo de solicitud

Obtén las posibles respuestas de 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

Objeto que contiene una lista de las posibles respuestas (una lista de 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
}

Obtener los votos de las opciones de una encuesta

Para obtener el número de votos de una opción de una encuesta, envía una solicitud a:

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

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto VideoPollOption.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Identificadores de acceso

El mismo identificador de acceso usado para crear el objeto LiveVideo 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 los votos de todas las opciones de una encuesta

Para obtener el número de votos de cada posible respuesta de una encuesta, usa la expansión de campos en el campo poll_options para que la respuesta incluya el campo total_votes en los objetos VideoPollOptions que se devuelven:

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

Requisitos

TipoDescripción

Identificadores de acceso

Identificador de acceso de un usuario que creó el objeto LiveVideo.

Funciones

Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Permisos

Para un objeto VideoPoll de un objeto LiveVideo en un usuario:


Para un objeto VideoPoll de un objeto LiveVideo en una página:


Para un objeto VideoPoll de un objeto LiveVideo en un grupo:


Ejemplo de solicitud

Obtiene todos los objetos VideoPollOptions y los campos text y total_votes correspondientes de un objeto 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();

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
}