我怎样才能让Yt gem考虑到已解散的频道?

时间:2017-06-19 08:43:05

标签: ruby-on-rails ruby youtube-api

在尝试从此YouTube频道(Beebop Vox)获取数据时,我在使用Yt gem时遇到了致命错误: https://www.youtube.com/channel/UCxwZWB5WtCntLsjzx8plK6Q

对此频道的调用会返回一个空数组。

这是来自Yt gem的错误消息: A request to YouTube API returned no items but some were expected: {} You can retry the same request manually by running: curl -X GET -H "content-length: 0" -H "user-agent: Yt::Request (gzip)" -H "authorization: Bearer { USER_TOKEN }" -H "host: www.googleapis.com" "https://www.googleapis.com/youtube/v3/channels?id=UCxwZWB5WtCntLsjzx8plK6Q&maxResults=50&part=statistics"

此频道现已解散,因为它已转移到YOGSCAST网络。据推测,这在它的频道ID上乱窜,我的用户仍然订阅了神器频道。新的Beebop Vox频道在这里: https://www.youtube.com/channel/UCsrgL-QuUioeuAKpbhy69XQ

对此频道的调用不会返回空数组。

如何解决此类错误,以免它导致我的应用程序崩溃?

1 个答案:

答案 0 :(得分:0)

在发布此问题时,我不知道raise。我的代码试图保存那些不存在的数据。

基本上,我需要做的是

begin
  save_youtube_data
rescue
  handle_error
end

更好的是,我应该通过以下方式进一步处理它:

if youtube_returns_empty_array
  do_stuff
else
  next
end