我正在尝试使用Ruby使用简单的http请求将视频上传到youtube,但由于某些原因它似乎不起作用。 这是代码:
require 'httparty'
token = 'blahblah'
filename = 'video.mp4'
headerinfo = {
'Host' => 'www.googleapis.com',
'Authorization' => 'Bearer ' + token,
'Content-Type' => 'application/json; charset=UTF-8',
'X-Upload-Content-Length' => File.size(filename).to_s,
'X-Upload-Content-Type' => 'video/mp4'
}
HTTParty.post('https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status',
:header => headerinfo,
:data =>{
'snippet' =>{
'title' => 'My test video from Ruby',
'description' => 'nice video'
},
'status' =>{
'embeddable' => true,
'privacyStatus' => 'public',
'license' => 'youtube'
}
}.to_json,
:media => (File.open(filename,'rb').read)
)
错误如下:
{"domain"=>"global", "reason"=>"required", "message"=>"Login Required", "locationType"=>"header", "location"=>"Authorization"}
令牌是正确的,因为我在另一个基于python的应用程序上测试它,它的工作原理。我做错了什么?
注意:我也尝试使用谷歌api库,但无法让它工作。它没有正确地提到在哪里提供令牌ID等。我创建了client_secrets.json文件以及所有其他必要的信息,但我仍然不确定在何处指定令牌。以下是Google提供的代码:https://developers.google.com/youtube/v3/docs/videos/insert
要么对我来说应该没问题,但如果我能通过一个简单的邮寄请求让它工作就会很棒。
任何帮助都将不胜感激。