我在尝试着update
and delete
视频使用YouTube API v3 https://developers.google.com/youtube/v3/docs/videos with OAuth2 用于身份验证 https://developers.google.com/youtube/v3/guides/authentication通过google-api-client (0.6.4)
红宝石。但是,当我尝试执行这两个操作中的任何一个时,我看到以下错误消息:
Google::APIClient::ClientError: Insufficient Permission
这是奇怪的事情:使用与以下完全相同的身份验证过程update
and delete
, I can insert
(上传)成功,没问题!所以,我不认为这是我的身份验证设置的问题,而是我代码中其他地方的问题。
我的读写scope
在任何这些操作中始终相同:
https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload
根据 API 文档,以空格分隔的范围集应涵盖insert
, update
and delete
行动。
My client_id
, client_secret
, refresh_token
所有这些动作也总是相同的——所以,这也不是问题,不是吗?请注意,我的程序自动获取新的access_token
当它到期时,所以,我再次认为这不是问题所在。
为了比较,这是我的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 文档 https://developers.google.com/youtube/v3/docs/videos/delete没有提供任何例子,所以我没有什么可以比较的。如果我可以提供更多信息以使我的问题更清楚,请告诉我。