我使用https://github.com/Fullscreen/yt与Youtube API进行交互,但经过几个小时的测试,我无法从视频中获取评论。
我怀疑原因是我请求了错误的权限,但我在谷歌文档中找不到任何关于请求范围的明确内容。从OAuth操场出现,是https://www.googleapis.com/auth/youtube.force-ssl但是,我仍然不能使它工作。
这是请求新令牌的全方位提供程序行:
provider :google_oauth2, key, secret, {:scope => 'http://gdata.youtube.com,email,profile,youtube,youtube.force-ssl'}
我是这样检索注释的:
Yt.configure do |config|
config.client_id = key
config.client_secret = secret
end
youtube_client = Yt::Account.new access_token: 'yadayada'
video = Yt::Video.new id: 'foobar', auth: youtube_client
puts video.comments
我得到的是:
Yt::Errors::Forbidden: A request to YouTube API was considered forbidden by the server:
{"error"=>{"errors"=>[{"domain"=>"global", "reason"=>"insufficientPermissions", "message"=>"Insufficient Permission"}], "code"=>403, "message"=>"Insufficient Permission"}}
我也在通道上尝试了几乎相同的方法,同样的问题,这就是为什么我猜我的access_token有问题。
有人这样做了吗?我做错了什么?例子吗?
根据您分享的链接页面上的文档,我无法看到这行代码:
account = Yt::Account.new authorization_code: '4/Ja60jJ7_Kw0', redirect_uri: redirect_uri
每个授权你的应用程序的用户将被重定向到redirect_uri,带有一个额外的代码参数,看起来像4/Ja60jJ7_Kw0。只需将代码传递给以下方法来验证和初始化帐户:
如果不能尝试使用环境变量进行配置
作为上述方法的另一种选择,你可以用变量配置你的应用。设置以下环境变量:
export YT_CLIENT_ID="1234567890.apps.googleusercontent.com"
export YT_CLIENT_SECRET="1234567890"
export YT_API_KEY="123456789012345678901234567890"
相当于用初始化器配置你的应用:
Yt.configure do |config|
config.client_id = '1234567890.apps.googleusercontent.com'
config.client_secret = '1234567890'
config.api_key = '123456789012345678901234567890'
end
所以使用你喜欢的方法。如果在两个位置都设置了一个变量,那么Yt。配置优先。
希望这有帮助!!