Interactions avec les spectateurs

Vous pouvez utiliser l’API Live Video pour obtenir des commentaires et des réactions sur les diffusions vidéo en direct afin que les producteurs vidéo et les artistes connectés puissent interagir avec les spectateurs. Vous pouvez le faire en interrogeant périodiquement l’objet LiveVideo pour obtenir les commentaires et réactions actuels ou configurer les évènements envoyés par le serveur pour recevoir les commentaires et réactions en temps réel.

Obtenir les commentaires et réactions actuels

Pour obtenir les commentaires ou réactions actuels sur une diffusion vidéo en direct, envoyez une demande à :

GET /{live-video-id}/comments
GET /{live-video-id}/reactions

Exemple de demande

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

request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{live-video-id}/comments"
           parameters:nil
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{live-video-id}/comments',
  'GET',
  {},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{live-video-id}/comments',
    '{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();

Exemple de réponse

{
  "data": [
    {
      "created_time": "2018-08-30T18:47:02+0000",
      "from": {
        "name": "Steph C.",
        "id": "552524095105158"
      },
      "message": "This is such a great live stream.",
      "id": "911936075671494_911936769004758"
    },
    {
      "created_time": "2018-08-30T18:47:17+0000",
      "from": {
        "name": "Kevin D.",
        "id": "552524095105158"
      },
      "message": "Shoutout over here!",
      "id": "911936075671494_911936909004744"
    },
    {
      "created_time": "2018-08-30T18:48:14+0000",
      "from": {
        "name": "Clay T.",
        "id": "552524095105158"
      },
      "message": "Where is this place?",
      "id": "911936075671494_911937292338039"
    }
    ],
  "paging": {
    "cursors": {
      "before": "WTI5d...",
      "after": "WTI5d..."
    }
  }
}

Reportez-vous aux références complémentaires Commentaires et Réactions pour plus d’informations sur les champs dont le contenu peut être retourné par un appel de requête, et reportez-vous aux instructions de filtrage et de classement. Les commentaires et les réactions peuvent être recueillis à intervalles réguliers (en secondes).

Réception des commentaires et réactions en temps réel

Pour recevoir les commentaires et les réactions des clients du navigateur en temps réel, configurez les Évènements envoyés par le serveur et envoyez une demande à ces points de terminaison :

GET /{live-video-id}/live_comments
GET /{live-video-id}/live_reactions

Notez l’URL de l’hôte pour les évènements de diffusion en direct : https://streaming-graph.facebook.com

Exemple de demande

GET https://streaming-graph.facebook.com/{live-video-id}/live_comments?access_token={access-token}
var source = new EventSource("https://streaming-graph.facebook.com/{live-video-id}/live_comments?access_token={access-token}");
source.onmessage = function(event) {
  // Do something with event.message for example
};

Exemple de réponse

: ping
data:
  {
    "created_time":"2018-08-30T21:11:01+0000",
    "id":"911936075671494_912014908996944",
    "view_id":43329028,
    "from":
      {
        "id":"552524095105158",
        "name":"Kerry Fisher"
      },
    "message":"I love this video!"
  }
: ping
: ping

Reportez-vous aux références Commentaires en direct et Réactions en direct pour plus d’informations sur les champs dont le contenu peut être renvoyé par un appel de requête, la fréquence de ping et le filtrage.