2014-07-22 85 views
0

我正在從iOS應用程序將視頻上​​傳到Youtube。Youtube:將視頻上傳到單個帳戶/頻道的多帳戶身份驗證(OAuth)

步驟如下:

  1. 創建谷歌帳戶,並啓用YouTube數據API爲開發者控制檯的帳戶。
  2. 創建了客戶端ID和客戶端密鑰,並將其併入應用程序中。
  3. 檢出Google API objective C client Youtube上傳,這通常是一個MAC工具,我剛剛修改爲iOS。
  4. 運行該應用程序。
  5. 它會提示進行登錄(OAuth)。

案例#1

  • 使用登錄同一個帳戶,該帳戶用於創建客戶端ID和 客戶端密鑰。
  • 接受範圍並將授權者分配給Youtube服務。

GTMOAuth2ViewControllerTouch: completionHandler:^(GTMOAuth2ViewControllerTouch *的viewController, GTMOAuth2Authentication * AUTH,NSError *誤差)
{

self.youTubeService.authorizer = AUTH;

}

  • 開始上傳,它做工精細。

案例#2

  • 使用不同的帳戶登錄。
  • 接受範圍並將授權者分配給Youtube服務。

GTMOAuth2ViewControllerTouch: completionHandler:^(GTMOAuth2ViewControllerTouch *的viewController, GTMOAuth2Authentication * AUTH,NSError *誤差)
{

self.youTubeService.authorizer = AUTH;

}

  • 開始上傳,使其產生:錯誤域= com.google.GTLJSONRPCErrorDomain代碼= -32602「的操作無法完成。(未授權)」的UserInfo = 0x986abe0 {誤差=未經授權,GTLStructuredError = GTLErrorObject 0x98528d0:{消息: 「未授權」 的代碼:-32602數據:1},NSLocalizedFailureReason =(未經授權)}

enter image description here

注:如果我使用相同的帳戶(用於創建客戶端ID和密碼)登錄和上傳,它工作正常,視頻顯示在Youtube上。 但是,每當嘗試與其他帳戶上傳它導致問題,即使在谷歌API目標C client application。

讓我知道如果我錯過任何其他情況下考慮這樣做。 謝謝。

回答

0

經過一天的搜索/測試,終於找到原因。 我的OAuth進程沒有任何問題。 原因是其他多個帳戶(不是用於創建客戶端ID和客戶端密鑰的帳戶)在Youtube中沒有頻道。

解決方案: 如果用戶帳戶是Youtube的新用戶,那麼youtube將沒有該帳戶的頻道。 用戶需要創建一個(這很簡單,YouTube的本身會提醒創造新的頻道時,就是讓選擇我從左側窗格中通道)

如果用戶帳戶具有有效的通道,那麼上述「未經授權」錯誤將不會發生。

相關問題