Intégrer la fonctionnalité Reprendre la lecture à l'aide de l'API REST

book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml

Le SDK Engage propose une API REST pour offrir une expérience de visionnage continu cohérente sur les plates-formes non Android telles qu'iOS et Roku TV. L'API permet aux développeurs de mettre à jour l'état "Continuer à regarder" pour les utilisateurs inscrits à partir de plates-formes autres qu'Android.

Prérequis

.
  • Vous devez d'abord terminer l'intégration sur l'appareil basée sur le SDK Engage. Cette étape essentielle établit l'association nécessaire entre l'ID utilisateur Google et le AccountProfile de votre application.
  • Accès à l'API et authentification : pour afficher et activer l'API dans votre projet Google Cloud, vous devez passer par un processus de liste d'autorisation. Toutes les requêtes API nécessitent une authentification.

Obtenir l'accès

Pour pouvoir afficher et activer l'API dans la console Google Cloud, vous devez enregistrer votre compte.

  1. Le numéro client Google Workspace devrait être disponible. Si ce n'est pas le cas, vous devrez peut-être configurer un compte Google Workspace ainsi que tous les comptes Google que vous souhaitez utiliser pour appeler l'API.
  2. Configurez un compte dans la console Google Cloud à l'aide d'une adresse e-mail associée à Google Workspace.
  3. Créez un projet.
  4. Créez un compte de service pour l'authentification de l'API. Une fois le compte de service créé, vous disposerez de deux éléments :
    • ID d'un compte de service.
    • Un fichier JSON contenant la clé de votre compte de service. Conservez ce fichier de manière sécurisée. Vous en aurez besoin pour authentifier votre client auprès de l'API ultérieurement.
  5. Les espaces de travail et les comptes Google associés peuvent désormais utiliser les API REST. Une fois la modification propagée, vous serez informé si l'API est prête à être appelée par vos comptes de service.
  6. Suivez ces étapes pour vous préparer à effectuer un appel d'API délégué.

Publier le cluster "Continuation"

Pour publier les données de découverte de vidéos, envoyez une requête POST à l'API publishContinuationCluster en utilisant la syntaxe suivante.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

Où :

  • package_name : nom du package du fournisseur de contenu multimédia
  • accountId : ID unique du compte de l'utilisateur dans votre système. Il doit correspondre à accountId utilisé dans le chemin d'accès sur l'appareil.
  • profileId : ID unique du profil de l'utilisateur dans le compte de votre système. Il doit correspondre à l'ID de profil utilisé dans le chemin d'accès sur l'appareil.

L'URL du compte sans profil est la suivante :

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

La charge utile de la requête est représentée dans le champ entities. entities représente une liste d'entités de contenu, qui peuvent être MovieEntity ou TVEpisodeEntity. Ce champ est obligatoire.

Corps de la requête

Field

Type

Obligatoire

Description

entités

Liste des objets MediaEntity

Oui

Liste d'entités de contenu (cinq maximum). Seuls les cinq premiers seront conservés et les autres supprimés. Une liste vide est autorisée pour indiquer que l'utilisateur a terminé de regarder toutes les entités.

Le champ entities contient des movieEntity et des tvEpisodeEntity individuels.

Field

Type

Obligatoire

Description

movieEntity

MovieEntity

Oui

Objet représentant un film dans ContinuationCluster.

tvEpisodeEntity

TvEpisodeEntity

Oui

Objet représentant un épisode TV dans ContinuationCluster.

Chaque objet du tableau d'entités doit être l'un des types MediaEntity disponibles, à savoir MovieEntity et TvEpisodeEntity, ainsi que les champs communs et spécifiques au type.

L'extrait de code suivant présente le payload du corps de la requête pour l'API publishContinuationCluster.

{
  "entities": [
    {
      "movieEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "Movie1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/movie1_img1.png",
          "http://www.example.com/movie1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 5400000,
        "last_play_back_position_time_millis": 3241111
      }
    },
    {
      "tvEpisodeEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "TV SERIES EPISODE 1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/episode1_img1.png",
          "http://www.example.com/episode1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 1800000,
        "last_play_back_position_time_millis": 2141231,
        "episode_display_number": "1",
        "season_number": "1",
        "show_title": "title"
      }
    }
  ]
}

Supprimer les données de découverte vidéo

Utilisez l'API clearClusters pour supprimer les données de découverte de vidéos.

Pour supprimer les données du cluster de continuation, envoyez une requête POST à l'API clearClusters en utilisant la syntaxe suivante.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

Où :

  • package_name : nom du package du fournisseur de contenu multimédia.
  • accountId : ID unique du compte de l'utilisateur dans votre système. Il doit correspondre à accountId utilisé dans le chemin d'accès sur l'appareil.
  • profileId : ID unique du profil de l'utilisateur dans le compte de votre système. Il doit correspondre à l'ID de profil utilisé dans le chemin d'accès sur l'appareil.

La charge utile de l'API clearClusters ne contient qu'un seul champ, reason, qui contient un DeleteReason spécifiant la raison de la suppression des données.

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

Tests

Une fois les données publiées, utilisez un compte de test utilisateur pour vérifier que le contenu attendu s'affiche dans la ligne "Reprendre la lecture" sur les surfaces Google cibles, telles que Google TV et les applications mobiles Google TV pour Android et iOS.

Lors des tests, prévoyez un délai de propagation raisonnable de quelques minutes et respectez les exigences de visionnage, par exemple en regardant une partie d'un film ou un épisode en entier. Pour en savoir plus, consultez les consignes relatives au canal "À regarder ensuite" pour les développeurs d'applications.