web-dev-qa-db-ja.com

AjaxとJSONを使用してJavaScriptでv3URLAPIを使用してYoutubeビデオタイトルを取得する方法

私はYoutubeビデオのタイトルを取得しようとしているだけです。それを理解できないようです。これまでのところ私はこれを持っています:

     q = 'https://www.googleapis.com/youtube/v3/videos?id='+ itemId +'&key='+ ytApiKey +'&fields=items(snippet(channelId,title,categoryId))&part=snippet' ;

$.ajax({
      url: q, 
      dataType: "jsonp",
      success: function(data){
               alert(data.items[0].title);
               console.log(data.snippet.title);            
      },
      error: function(jqXHR, textStatus, errorThrown) {
          alert (textStatus, + ' | ' + errorThrown);
      }
  });

ありがとう、

10
Kamy D

私はそれを使用して動作させました

https://www.googleapis.com/youtube/v3/videos?id=itemId&key=apiKey&fields=items(snippet(title))&part=snippet

そして

alert(data.items[0].snippet.title);

したがって、構文はそれほど間違っていません。しかし、Google APIの「許可されたリファラー」を設定するときに、問題は本当にバックエンドにあることがわかりました。 V3 APIを使用すると、APIが属するリファラーを選択できるため、他のユーザーがAPIを盗んで使用することはできません。したがって、指定したドメイン名/ IPからリクエストが発信された場合、APIは機能します。制限を与えないとコードは機能しますが、ドメインに入ると失敗します! 。mydomainname.com /と入力しましたが、提案されたのと同じ形式ですが、どういうわけかエラーが発生します。これで、理由がわかりました。

11
Kamy D

次のjqueryコードは、ビデオのタイトルをフェッチします。

$.ajax({
      url: "https://www.googleapis.com/youtube/v3/videos?id=" + videoId + "&key="+ apiKey + "&fields=items(snippet(title))&part=snippet", 
      dataType: "jsonp",
      success: function(data){
               console.log(data.items[0].snippet.title);           
      },
      error: function(jqXHR, textStatus, errorThrown) {
          alert (textStatus, + ' | ' + errorThrown);
      }
  });
4
Ayush choubey