Ruby gemを介した認証のために、OAuth2でYouTube API v3を使用してビデオを作成しようとしupdate
ています。ただし、これら 2 つのアクションのいずれかを実行しようとすると、次のエラー メッセージが表示されます。delete
google-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_secret
、refresh_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 ドキュメントには例が記載されていないため、比較対象がありません。質問を明確にするために提供できる情報が他にある場合はお知らせください。