Sondaggi

Puoi usare l'API per creare e gestire sondaggi sulle trasmissioni di video in diretta che presentano lo stato LIVE. I sondaggi sono rappresentati da oggetti VideoPoll e si compongono di VideoPollOption, che a loro volta rappresentano possibili risposte alla domanda del sondaggio.

Creare un sondaggio

Per creare un sondaggio in una trasmissione di video in diretta, invia una richiesta a:

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

L'oggetto LiveVideo deve avere lo statusLIVE perché il VideoPoll possa essere creato. In caso di azione eseguita correttamente, l'API risponderà con l'ID dell'oggetto VideoPoll.

Parametri della stringa della query

  • {question}: la domanda del sondaggio.
  • {options}: un array di possibili risposte.

Consulta il riferimento relativo ai segmenti dei Sondaggi nei video in diretta per una lista completa di parametri della stringa della query che puoi includere nella creazione di un sondaggio.

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente o una Pagina che ha creato il LiveVideo.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

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

Esempio di risposta

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

Chiudere un sondaggio

Per chiudere un sondaggio nella trasmissione di un video in diretta dopo che una persona ha selezionato un'opzione di risposta, invia una richiesta a:

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

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato il VideoPoll.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

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

Esempio di risposta

{
  "success": true
}

Riaprire un sondaggio

Per riaprire un sondaggio chiuso in modo che una persona possa modificare l'opzione di risposta selezionata, invia una richiesta a:

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

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato il VideoPoll.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

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

Esempio di risposta

{
  "success": true
}

Visualizzare i risultati di un sondaggio

Per configurare un sondaggio affinché visualizzi i risultati dopo che una persona ha votato, invia una richiesta a:

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

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato il VideoPoll.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

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

Esempio di risposta

{
  "success": true
}

Ottenere le opzioni di risposta di un sondaggio

Per ottenere le possibili risposte di un sondaggio, invia una richiesta a:

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

Consulta il riferimento VideoPoll per una lista di campi e segmenti disponibili.

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato il VideoPoll.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

Ottiene le possibili risposte di un sondaggio:

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

Esempio di risposta

Un oggetto contenente una lista di possibili risposte (una lista di VideoPollOption).

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

Ottenere i voti delle opzioni di risposta di un sondaggio

Per ottenere il numero di voti per un'opzione di risposta, invia una richiesta a:

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

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato la VideoPollOption.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Token d'accesso

Lo stesso token d'accesso usato per creare il LiveVideo o il messaggio broadcast.

Esempio di richiesta

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

Esempio di risposta

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

Ottenere i voti di tutte le opzioni di risposta di un sondaggio

Per ottenere il numero di voti per ciascuna delle possibili risposte di un sondaggio, usa l'espansione dei campi sul campo poll_options per fare in modo che la risposta includa il campo total_votes su ciascuna VideoPollOption restituita:

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

Requisiti

TipoDescrizione

Token d'accesso

Un token d'accesso di un utente che ha creato il LiveVideo.

Funzioni

Per un VideoPoll in un LiveVideo su un gruppo:


Autorizzazioni

Per un VideoPoll in un LiveVideo su un profilo utente:


Per un VideoPoll in un LiveVideo su una Pagina:


Per un VideoPoll in un LiveVideo su un gruppo:


Esempio di richiesta

Ottiene tutte le VideoPollOption e i corrispettivi campi text e total_votes di un 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();

Esempio di risposta

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