Erreur 400 : « Le type de média « application/json ; charset=UTF-8 » n'est pas pris en charge.
P粉818561682
P粉818561682 2024-03-28 18:05:10
0
1
420

Amusez-vous bien, j'utilise l'API Google v3 pour télécharger des vidéos sur YouTube. Malheureusement, je suis confronté à cette erreur depuis hier sans aucun changement dans le code ou le serveur.

J'ai recherché le texte d'erreur dans différentes sections mais je n'ai obtenu aucun résultat. La seule chose que j'ai trouvée était ce package et le fichier à cette adresse src/Http/MediaFileUpload.php Spécifiez le type de contenu, la valeur est application/json ; set charset=UTF-8. Je pense que c'est le problème. Guidez-moi s'il-vous-plaît.

Merci

Détails de l'environnement

  • Système d'exploitation : Linux
  • Version PHP : 8.1.8
  • Nom et version du package : "google/apiclient": "^2.13.2"
  • Laravel : ^9.0

Étapes pour reproduire

"error": {
    "code": 400,
    "message": "Media type 'application/json; charset=UTF-8' is not supported. ",
    "errors": [
      {
        "message": "Media type 'application/json; charset=UTF-8' is not supported. ",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }

Exemple de code

 $chunkSizeBytes = 15 * 1024 * 1024;
        $client->setDefer(true);
        $insertRequest = $youtube->videos->insert("status,snippet,recordingDetails", $video , [
            'notifySubscribers' => true
        ]);
        $media = new MediaFileUpload(
            $client,
            $insertRequest,
            'video/'.File::extension($videoPath),
            null,
            false,
            $chunkSizeBytes
        );
        $media->setFileSize(File::size($videoPath));

        $status = false;
        $handle = fopen($videoPath, "rb");
        while (!$status && !feof($handle)) {
            $chunk = fread($handle, $chunkSizeBytes);
            $status = $media->nextChunk($chunk);
        }
        fclose($handle);

        $client->setDefer(false);

P粉818561682
P粉818561682

répondre à tous(1)
P粉872101673

Voir le code pour savoir quand $resumable 为 false 时,媒体类型 application/json se produit (voir ici et ici).

Je vais donc essayer de mettre en place $resumable = true (这是 MediaFileUpload 的第五个参数)。您可以在 large-file-upload.php.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal