2017-02-22 78 views
0

我一直在使用OAuth方法上傳,更新和刪除YouTube上的視頻。直到2月12日,所有這些程序都停止工作,這一切都運行良好。現在,當我去刪除YouTube視頻我得到以下錯誤:403刪除YouTube視頻時出現禁止的錯誤

"code": 403, "message": "The video that you are trying to delete cannot be deleted. The request might not be properly authorized."

我知道OAuth的過程中工作,因爲我可以得到令牌和刷新令牌,如果它已過期。我正在使用Google提供的最新PHP庫(使用作曲家安裝)。我可以通過撥打以下電話獲得有關YouTube視頻的信息:

$videoId = "xxxxxxx"; //id of video on YouTube 
$youtube->videos->listVideos("snippet", array('id' => $videoId)); 

但是,然後刪除調用給出了上述錯誤。

$youtube->videos->delete($videoId); 

由於listVideos工作,這證實client_id,密鑰和令牌是正確的。我也設置範圍如下

$client->setScopes(array('https://www.googleapis.com/auth/youtube', 
'https://www.googleapis.com/auth/youtube.upload', 
'https://www.googleapis.com/auth/youtubepartner')); 

我還檢查了在Google API中設置的憑據和配額是否正常。我認爲可能已經達到了配額,但似乎並非如此。我確實在2月初看到YouTube上的一封電子郵件,稱他們有新的服務條款和開發者政策。我回顧了所有這些,但似乎並沒有指出我遇到的問題?

不知道還有其他什麼嘗試?

+0

您是否嘗試重新驗證您的代碼?聽起來像刷新令牌可能是壞的,你需要一個新的。如果你是一個YouTube合作伙伴,你應該聯繫他們,我相信他們會很樂意提供幫助。 – DaImTo

+0

謝謝!問題看起來似乎是刷新令牌不再有效。我創建了一個新項目,經過重新驗證,希望刷新的令牌可以持續更長的時間。 – user43577

回答

0

試着檢查我在這裏的答案SO question,重點關注如何使用Google API刷新令牌。

你的錯誤多因:

  • 當令牌過期
  • 令牌的範圍(這很重要)
  • 如果令牌無效

如果令牌無效你可以這樣排除故障:

  • 從數據存儲或數據庫中刪除訪問令牌。

  • 使用刷新令牌來獲取新的訪問令牌(如果你使用的是刷新令牌)

  • 嘗試再次進行API調用。如果它起作用,你就很好!如果不是......

  • 檢查對tokenInfo API的訪問令牌

  • 如果仍然無效,做一個完整的重新驗證

希望這有助於!

+0

謝謝 - 問題是刷新令牌因某種原因不再有效。重新認證,現在一切正常。 – user43577