我试图复制本教程:YouTube API,版本3 on Rails,以便将其应用于我自己的项目。但这几天来我一直很难受。
一开始,我犯了一个错误:
对YouTube API的请求导致了一个意外的服务器错误:若要显示更详细的错误,请更改Yt的配置: Yt.configure do _config_ config.log_level = :debug end
我更新了RVM和Ruby,现在我得到了这个错误:
在VideosController#create中,对YouTube API的请求被认为是被服务器禁止的:要显示更详细的错误,请更改Yt的配置,包括: Yt.configure do config维京config.log_level =:YouTube end
我已经:
这
curl -X GET -H“内容长度: 0”-H“用户代理:Yt::-H (gzip)”-H“主机: www.googleapis.com”"Y&part=snippet“
退还:

使用Rails 4.2.4,Ruby2.3.0;源代码:应用程序
任何帮助和建议都将受到强烈和真诚的感谢。
发布于 2016-11-29 11:36:01
已禁用 (403)禁止访问。请求可能没有得到适当的授权。
回答:您正在提出的请求是未经授权的。更新:将key=更改为access_token=
可能的原因:
https://www.youtube.com/annotations_invideo?key=您正在尝试运行一个请求annotations_invideo (我实际上在文档中找不到它),并且您正在向它应用一个API键。API密钥仅适用于公共数据。annotations_invideo不是对API的有效请求,也不是您需要进行身份验证的东西。如果需要进行身份验证,则需要一个访问令牌,然后应用access_token=而不是key=。
你到底在哪里找到annotations_invideo的?
更新:
幸运的是,自从你贴出你的问题以来,我已经不到一个小时了。
https://www.youtube.com/annotations_invideo?access_token=AIzaSyBSvIOM0EGX1tcrf5IAlYJuH_ttqVgTO4Q&video_id=BPNYv0vd78A并将其转储到web浏览器中,返回数据。
<document>
<annotations>
<annotation author="" id="annotation_1585555999" log_data="ei=B2k9WIOCB8X0dNKokKAG&a-id=annotation_1585555999&xble=1&a-type=4&a-v=BPNYv0vd78A" style="title" type="text">
<TEXT>Hello, world!</TEXT>
<segment>
<movingRegion type="rect">
<rectRegion d="0" h="25.2779998779" t="0:00.000" w="75.0" x="13.1540002823" y="67.3239974976"/>
<rectRegion d="0" h="25.2779998779" t="0:02.089" w="75.0" x="13.1540002823" y="67.3239974976"/>
</movingRegion>
</segment>
<appearance bgAlpha="0.25" bgColor="0" borderAlpha="0.10000000149" effects="" fgColor="16777215" fontWeight="bold" highlightFontColor="16777215" textSize="21.6642"/>
</annotation>
<annotation id="channel:563d3ce4-0000-20cc-8fd5-001a11463304" style="playlist" type="promotion" log_data="ei=B2k9WIOCB8X0dNKokKAG&a-type=12&a-ch=UCwCnUcLcb9-eSrHa_RQGkQQ&xble=1&a-id=563d3ce4-0000-20cc-8fd5-001a11463304&l-class=2&link-id=PLuW4g7xujBWfU26JUTW1DGs3hk4LD5KaL&a-v=BPNYv0vd78A">
<data>
{"playlist_length":"200","session_data":{"itct":"CAIQwTcY____________ASITCMOh497wzdACFUU6HQodUhQEZCj4HTICaXZIwN_33vSX1vkE","annotation_id":"563d3ce4-0000-20cc-8fd5-001a11463304","feature":"iv","ei":"B2k9WIOCB8X0dNKokKAG","src_vid":"BPNYv0vd78A"},"is_mobile":false,"text_line_2":"Adorable Kids","text_line_1":"Check this playlist","image_url":"https:\/\/i.ytimg.com\/vi\/yDrLVqRHAsw\/mqdefault.jpg","start_ms":1000,"collapse_delay_ms":86400000,"end_ms":3000}
</data>
<segment/>
<action trigger="click" type="openUrl">
<url type="hyperlink" target="new" value="https://www.youtube.com/watch?v=yDrLVqRHAsw&list=PLuW4g7xujBWfU26JUTW1DGs3hk4LD5KaL"/>
</action>
</annotation>
</annotations>
</document>注意:我想知道为什么这是返回XML而不是Json --它让我认为这是一个更老的api。找到它时,您使用的是YouTube API v2,即已弃用,应该关闭它。
https://youtube-eng.googleblog.com/2014/09/have-you-migrated-to-data-api-v3-yet.html
你应该放下这个,移到YouTube API v3
https://stackoverflow.com/questions/40864666
复制相似问题