2015-05-19 83 views
2

我已閱讀了大部分開發人員控制檯參考。403查詢YouTube Analytics API .NET時返回了禁止的錯誤

  1. 我在Google Developers Console中的YouTube網站的「YouTube管理器Google帳戶」下創建了一個安裝的項目。
  2. 我已啓用YouTube數據API v3和YouTube Analytics v1。
  3. 我已經爲安裝的項目創建了一個憑證。

的代碼沒有問題,驗證:

UserCredential credential; 
 
      using (var stream = new FileStream(hds_opo_youtube_service.Properties.Settings.Default.clientIDFile, FileMode.Open, FileAccess.Read)) 
 
      { 
 
       credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
 
        GoogleClientSecrets.Load(stream).Secrets, 
 
        // This OAuth 2.0 access scope allows for read-only access to the authenticated 
 
        // user's account, but not other types of account access. 
 
        new[] { YouTubeService.Scope.YoutubeReadonly, 
 
          YouTubeAnalyticsService.Scope.YtAnalyticsReadonly}, 
 
        "user", 
 
        CancellationToken.None, 
 
        new FileDataStore(this.GetType().ToString()) 
 
       ); 
 
      } 
 

 
      var youtubeService = new YouTubeService(new BaseClientService.Initializer() 
 
      { 
 
       HttpClientInitializer = credential, 
 
       ApplicationName = this.GetType().ToString() 
 
      });
我可以從一個specfic播放列表中使用YouTube數據API獲取的視頻列表。然後我創建一個YouTube分析服務並嘗試查看視圖數據。這時候,我得到的:

中出現錯誤:Google.Apis.Requests.RequestError故宮[403] 錯誤[ 留言[功夫] 位置[ - ] 原因[禁止] 域[全球] ]

我試圖解決使用API​​ Explorer的情況。這非常有幫助。當我嘗試使用YouTube管理員所有者個人資料帳戶進行身份驗證時。查詢失敗。但是,如果我使用不同的Google+信息頁帳戶,我可以使查詢生效。 Google+信息頁帳戶有一個電子郵件帳戶,但所有與Google+信息頁帳戶的通信都會直接發送到經理所有者個人資料帳戶。所以我嘗試將Google+信息頁帳戶添加到項目權限中,但無法確認鏈接。我認爲我的問題是YouTube頻道歸Google+信息頁帳戶所有。經理擁有者擁有不同的帳戶和個人資料帳戶,即使它是YouTube帳戶的經理。我知道這聽起來很混亂。有沒有人對如何解決問題有任何想法。謝謝

回答

1

嗯,我想我會回答我自己的問題。 YouTube頻道已關聯到Google+商家頁面。本頁面並非完全意義上的Google帳戶。它有一個自動生成的電子郵件,但它不是一個真正的電子郵件帳戶。所有者經理是Google +個人資料帳戶。在創建我的應用程序之前,我不明白這個區別,所以當我最初嘗試進行身份驗證時,我已經在對Google+信息頁或Google+個人資料進行身份驗證之間進行了選擇。我選擇了Google+個人資料,認爲它是YouTube頻道的所有者。然後,所有隨後的身份驗證都使用存儲的刷新令牌,並且不會再要求兩個Google +帳戶中的哪一個進行身份驗證。同時我使用API​​ Explorer,並意識到我需要通過Google+信息頁進行身份驗證。所以我刪除了存儲的刷新標記,然後再次運行代碼。它給了我兩個帳戶的選擇。我選擇了Google+信息頁,並使用YouTube分析查詢。