9

Ruby gemを介した認証のために、OAuth2でYouTube API v3を使用してビデオを作成しようとしupdateています。ただし、これら 2 つのアクションのいずれかを実行しようとすると、次のエラー メッセージが表示されます。deletegoogle-api-client (0.6.4)

Google::APIClient::ClientError: Insufficient Permission

ここに奇妙なことがあります:と とまったく同じ認証手順を使用してupdate、問題なく正常に (アップロード)deleteできます! insertしたがって、これは認証設定の問題ではなく、コードの別の場所にあると思います。

私の読み書きscopeは、これらのアクションのいずれでも常に同じです。

https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload

また、API ドキュメントによると、スペースで区切られた一連のスコープはinsert,updateおよびdeleteアクションをカバーする必要があります。

client_idの 、はclient_secretrefresh_tokenこれらすべてのアクションでも常に同じです。つまり、それも問題にはなりませんね。access_token私のプログラムは有効期限が切れると自動的に new を取得することに注意してください。そのため、ここでも問題があるとは思いません。

比較するために、私のinsert(アップロード)コードは次のようになります(これは機能します):

# Auth stuff, then...
@client.execute!(
  :api_method => @youtube.videos.insert,
  :body_object => body,
  :media => Google::APIClient::UploadIO.new(file_path, 'video/*'),
  :parameters => {
    'uploadType' => 'multipart',
    :part => body.keys.join(','),
  }
)

そして、これが私のdeleteコードの外観です(これは失敗します):

# Auth stuff, then...
@client.execute!(
  :api_method => @youtube.videos.delete,
  :parameters => {
    'id' => youtube_id,
  }
)

私は何が欠けていますか?残念ながら、削除に関する YouTube API ドキュメントには例が記載されていないため、比較対象がありません。質問を明確にするために提供できる情報が他にある場合はお知らせください。

4

2 に答える 2