###作業について
Youtube APIを使ったWebアプリを作成しています。
現在、
キーワードを入力→検索→検索結果(動画)を表示
を行うための、Controllerを作成しております。
####Controler
class VideosController < ApplicationController before_action :require_user_logged_in require 'google/apis/youtube_v3' def new @videos = [] @keyword = params[:q] if @keyword.present? youtube = Google::Apis::YoutubeV3::YouTubeService.new youtube.key = "YOUTUBE API KEY" results = youtube.list_searches(part="snippet" , type: "video" , q: @keyword , max_results: 3 , order: :date , ) results.item.each do |result| video = Video.new(read(result)) @video << video end end end private def read(result) video_id = result['id.videoId'] channel_id = result['snippet.channelId'] video_title = result['snippet.title'] channel_title = result['snippet.channelTitle'] thumbnail_url = result['snippet.thumbnails.(medium).url'] { video_id: video_id, channel_id: channel_id, video_title: video_title, channel_title: channel_title, thumbnail_url: thumbnail_url, } end end
###エラー
以前楽天APIを使用した際のファイルを参考に、コードを描いてみたのですが、エラーになってしまいます。
####エラーコード
NoMethodError (undefined method `[]' for #<Google::Apis::YoutubeV3::SearchResult:0x00007f5188c231a8>):
検索結果から、欲しい値を読み出して、最後にハッシュとしてリターンするために書いた read メソッドが原因のようですが、この部分をどのように改善したらいいのかがわかりません。
分かる方がいらっしゃいましたら、お教えいただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/06 09:43