錯誤 400:'不支援媒體類型'application/json; charset=UTF-8'。”
P粉818561682
P粉818561682 2024-03-28 18:05:10
0
1
356

祝您玩得開心,我使用 Google api v3 將影片上傳到 YouTube。不幸的是,我從昨天開始就面臨這個錯誤,程式碼或伺服器沒有任何更改。

我在不同部分搜尋了錯誤文本,但沒有得到任何結果。我唯一發現的是這個套件和這個位址的檔案 src/Http/MediaFileUpload.php 指定content-type,值為application/json;設定 charset=UTF-8。我想這就是問題所在。請指導我。

謝謝

環境詳細資訊

  • 作業系統:Linux
  • PHP version: 8.1.8
  • 軟體包名稱和版本:「google/apiclient」:「^2.13.2」
  • Laravel:^9.0

重現步驟

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

程式碼範例

 $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

全部回覆(1)
P粉872101673

檢視程式碼,當$resumable 為false 時,媒體類型application/json 發生(請參閱此處此處)。

所以我會嘗試設定 $resumable = true (這是 MediaFileUpload 的第五個參數)。您可以在 large-file-upload.php#。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!