2013-07-01 178 views
1

我註冊我的應用程序與YouTube的Android應用程序,並獲得了一個API密鑰。然後我試圖讓通過我的瀏覽器的API調用來嘗試這樣的:Youtube API密鑰 - accessNotConfigured錯誤

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=my_api_key 

,我得到這個錯誤:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "accessNotConfigured", 
    "message": "Access Not Configured" 
    } 
    ], 
    "code": 403, 
    "message": "Access Not Configured" 
} 
} 

但我沒有配置我的帳戶,並設置爲工作服務與YouTube數據API v3 任何想法我還需要做什麼?

編輯:創建ClientID的和使所有所需的服務後,我得到了這樣的響應:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "youtube.parameter", 
    "reason": "authorizationRequired", 
    "message": "Unauthorized", 
    "locationType": "parameter", 
    "location": "mine" 
    } 
    ], 
    "code": 401, 
    "message": "Unauthorized" 
} 
} 

到這個網址,我粘貼到瀏覽器:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_server_apps 

和相同的結果最初,當我在瀏覽器

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_browser_apps

輸入這個網址

謝謝, Alex

回答

1

API密鑰是一個簡單的API密鑰,還是一個OAuth 2.0訪問令牌?該API調用需要OAuth 2.0授權才能使用。

我們最近published a video playlist解釋如何註冊一個簡單的密鑰和客戶端ID /客戶端祕密運行一些樣本。

你需要做的是:

  1. 註冊客戶端ID /客戶端密鑰
  2. 通過三個足式OAuth 2.0授權流去,並得到一個訪問令牌
  3. 使用訪問令牌進行API調用

我們將在某個關於使用OAuth Playground生成訪問令牌的點上發佈視頻。

+0

@lkai藍比你的視頻製作得很好。我用它們來獲取cliendId並啓用不同的所需服務。但我仍然得到未經授權或未配置的錯誤。我擴展了我的原始問題以顯示網址和錯誤。任何想法我可能做錯了嗎? – Genadinik

1

要使用Mine = true,您需要有一個Oauth2標記以及用於獲取用戶數據。

這裏是您可以使用,可以讓你瀏覽它,只要你打開認證右上角

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=contentDetails&mine=true&_h=1&

+0

我不應該使用mine = true嗎?另外,我試圖拉的YouTube頻道實際上並不是我的。這是一個很受歡迎的YouTube節目。我怎麼能這樣做? – Genadinik

1
  1. 你確定你正在經歷的OAuth2過程的鏈接在你的應用程序中獲得OAuth2密鑰?
  2. 另外在開發控制檯的服務下,您是否啓用了YouTube Data API v3?
+0

@Inbahim我如何確保我正在瀏覽OAuth2?是的,我確實啓用了YouTube Data API v3。 – Genadinik

+0

查看第129行以查看它是如何創建通過OAuth2的憑證https://github.com/youtube/ytd-android/blob/master/src/com/google/ytdl/MainActivity.java#L129 –

+0

如果您是隻是嘗試從瀏覽器中,檢查這一個正確的電話來獲得OAuth2令牌。 https://developers.google.com/youtube/v3/guides/authentication –

2

合成一些不同的東西,在原有基礎上的海報的意見,其他答案:

Also, the YouTube channel I am trying to pull isn't actually mine. It is a popular YouTube show. How could I do that?

要做出的API調用youtube.channels.list(),你可以在兩個參數中的一個通過檢索任意頻道的頻道信息。 (你不想使用mine=true因爲你說你不是想找回自己的頻道。)

  • 您可以使用forUsername="LEGACY_USERNAME",如果你知道的YouTube頻道,例如遺留下來的用戶名「GoogleDevelopers」或「LadyGagaVEVO」。
  • 如果您碰巧知道頻道的ID(通常以「UC」開頭),則可以使用id="UC..."

您還需要包含part=參數的值。 part="snippet"通常就足夠了。您不需要必須通過OAuth 2流進行此類API調用,並且您可以提供一個有效的API Key,該API Key已啓用YouTube Data API v3。 Ikai發佈的視頻系列是一個很好的註冊該API Key的指南。

這裏有一個youtube.channels.list(part="snippet", forUsername="GoogleDevelopers")電話的工作示例,使用交互式API瀏覽器:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=snippet&forUsername=GoogleDevelopers

它對應於下列網址:https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=GoogleDevelopers&key= {YOUR_API_KEY}

既然你問了Android應用程序,使用Java客戶端庫發出請求而不是請求原始URL可能是一個好主意。 sample code on this page應該可以幫助你開始。

0

我解決了這個問題,因爲我錯過了Google Console Dashboard的配置。

如果您使用google api v3,這是解決該問題的簡單方法,您只需通過Google控制檯儀表板啓用youtube api即可。 https://console.developers.google.com