我正在尝试使用带有OAuth2的YouTube API v3update
和delete
视频来通过Ruby gem 进行身份验证。但是,当我尝试执行这两个操作中的任何一个时,我会看到以下错误消息:google-api-client (0.6.4)
Google::APIClient::ClientError: Insufficient Permission
奇怪的是:update
使用与and完全相同的身份验证程序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
在到期时会自动获得一个新的,因此,我不认为这就是问题所在。
为了比较,这是我的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 文档没有提供任何示例,所以我没有什么可比较的。如果我可以提供更多信息以使我的问题更清楚,请告诉我。