Fehler 400: „Medientyp ‚application/json; charset=UTF-8' wird nicht unterstützt.'
P粉818561682
P粉818561682 2024-03-28 18:05:10
0
1
424

Viel Spaß, ich verwende Google API v3, um Videos auf YouTube hochzuladen. Leider tritt dieser Fehler seit gestern auf, ohne dass Änderungen am Code oder Server vorgenommen wurden.

Ich habe in verschiedenen Abschnitten nach dem Fehlertext gesucht, aber keine Ergebnisse erhalten. Das Einzige, was ich gefunden habe, war dieses Paket und die Datei unter dieser Adresse src/Http/MediaFileUpload.php Geben Sie den Inhaltstyp an, der Wert ist application/json; set charset=UTF-8. Ich denke, das ist das Problem. Bitte führen Sie mich.

Danke

Umgebungsdetails

  • Betriebssystem: Linux
  • PHP-Version: 8.1.8
  • Paketname und -version: „google/apiclient“: „^2.13.2“
  • Laravel: ^9.0

Schritte zur Reproduktion

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

Codebeispiel

 $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

Antworte allen(1)
P粉872101673

查看代码,当 $resumable 为 false 时,媒体类型 application/json 发生(请参阅 此处此处)。

所以我会尝试设置 $resumable = true (这是 MediaFileUpload 的第五个参数)。您可以在 large-file-upload.php

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage