简单的youtube javascript api 3请求不起作用

Simple youtube javascript api 3 request not works

本文关键字:请求 不起作用 api javascript youtube 简单      更新时间:2023-09-26

我试图用youtube javascript api v3编写一个简单的youtube请求来搜索视频。

这是源代码:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
       function showResponse(response) {
           var responseString = JSON.stringify(response, '', 2);
           document.getElementById('response').innerHTML += responseString;
        }
       // Called automatically when JavaScript client library is loaded.
       function onClientLoad() {
          gapi.client.load('youtube', 'v3', onYouTubeApiLoad);
       }
       // Called automatically when YouTube API interface is loaded
      function onYouTubeApiLoad() {
        // This API key is intended for use only in this lesson.
        gapi.client.setApiKey('API_KEY');
        search();
       }
       function search() {
         var request = gapi.client.youtube.search.list({
             part: 'snippet',
             q:'U2'
        });
        // Send the request to the API server,
        // and invoke onSearchRepsonse() with the response.
        request.execute(onSearchResponse);
    }
    // Called automatically with the response of the YouTube API request.
    function onSearchResponse(response) {
        showResponse(response);
    }

    </script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="https://apis.google.com/js/client.js?onload=onClientLoad" type="text/javascript"></script>
</head>
<body>
    <pre id="response"></pre>
</body>
</html>

当我在谷歌chrome(更新)上加载这个页面时,什么都没有发生,页面保持空白。我已经请求了浏览器应用程序的API密钥(带有referer),并复制到方法gap.client.setApiKey.中

有人能帮我吗?

感谢

在这里尝试这个例子

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Search API Sample</title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
    // How to search through a YouTube channel aka http://www.youtube.com/members
    google.load('search', '1');
    function OnLoad() {
      // create a search control
      var searchControl = new google.search.SearchControl();
      // So the results are expanded by default
      options = new google.search.SearcherOptions();
      options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
      // Create a video searcher and add it to the control
      searchControl.addSearcher(new google.search.VideoSearch(), options);
      // Draw the control onto the page
      searchControl.draw(document.getElementById("content"));
      // Search
      searchControl.execute("U2");
    }
    google.setOnLoadCallback(OnLoad);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="content">Loading...</div>
  </body>
</html>

当您使用<script src="https://apis.google.com/js/client.js?onload=onClientLoad"..></script>

你必须在网上的某个地方上传html文件,或者在你的电脑上使用XAMPP

要使用html搜索YT视频,在PC上使用Javascript,正如我所知,我们需要使用其他编码:

1-对于API 2.0版,使用与此类似的javascript代码。除了API KEY v3。

2-为此目的使用jQuery方法"$.get(..)"。

请参阅:http://play-videos.url.ph/v3/search-50-videos.html

有关更多详细信息,请参阅(我的帖子"搜索视频的Java脚本"):

http://phanhung20.blogspot.com/2015_09_01_archive.html

var maxRes = 50; 
 function searchQ(){
      query = document.getElementById('queryText').value;
      email = 'https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50'+
      '&order=viewCount&q='+ query + '&key=****YOUR API3 KEY*****'+
      '&callback=myPlan';
      var oldsearchS = document.getElementById('searchS');
      if(oldsearchS){
            oldsearchS.parentNode.removeChild(oldsearchS);
      }
      var s = document.createElement('script');
      s.setAttribute('src', email);
      s.setAttribute('id','searchS');
      s.setAttribute('type','text/javascript');
      document.getElementsByTagName('head')[0].appendChild(s);
  }
    
  function myPlan(response){
          for (var i=0; i<maxRes;i++){
          var videoID=response.items[i].id.videoId;
          if(typeof videoID != 'undefined'){    
          var title=response.items[i].snippet.title;
          var links = '<br><img src="http://img.youtube.com/vi/'+ videoID + 
                '/default.jpg" width="80" height="60">'+
                '<br>'+(i+1)+ '.&nbsp;<a href="#" onclick="playVid('''+ videoID + 
                ''');return false;">'+ title + '</a><br>';
          document.getElementById('list1a').innerHTML += links ;
          }
      }        
 }
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body>
  <input type="text"  value="abba" id="queryText" size="80">&nbsp;
  <button type="button" onclick="searchQ()">Search 50 videos</button>
  <br><br>
  <div id='list1a' style="width:750px;height:300px;overflow:auto;
  text-align:left;background-color:#eee;line-height:150%;padding:10px">
  </div>

我使用了Tom发布的原始代码,它给了我403访问权限错误。当我回到我的api控制台&检查了我的api访问时间,它已经过期了。所以我重新创建了api的访问时间。它重新创造了新的时间。代码运行良好,结果良好。

简单地说,我必须从web服务器发出请求。

感谢大家的回复