【发布时间】:2013-10-08 05:49:39
【问题描述】:
我正在尝试通过google-api-client (0.6.4) Ruby gem 使用YouTube API v3 和OAuth2 for authentication 来update 和delete 视频。但是,当我尝试执行这两个操作中的任何一个时,我会看到以下错误消息:
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,因此,我不认为这就是问题所在。
比较一下,这是我的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 documentation for delete 没有提供任何示例,所以我没有什么可比较的。如果我可以提供更多信息以使我的问题更清楚,请告诉我。
【问题讨论】:
标签: ruby api youtube youtube-api google-api-ruby-client