2017-05-31 3 views
0

私はwebworksアプリケーションを作成していますので、私のコードはサーバーに置かれていません。あなたのローカルファイルシステムからアクセスするときにyoutubeデータapiは動作しませんが、それが私のアプリケーションの仕組みです。純粋なjs、コマンドラインツールを使用せずにローカルのプライベートWebサーバーを作成する方法や回避策が必要です。file:///

       html 

<!DOCTYPE HTML> 
<html> 

    <head> 
    <title>add song</title> 
    <link type="text/css" href="../css/AS_Style.css" rel="stylesheet"> 
    </head> 

    <body> 

    <div id="main"> 
     <p id="response">a</p> 

     <form action="#"> 
     <p><input type="text" id="search" placeholder="Type something..." autocomplete="off" class="form-control" /></p> 
     <p><input type="submit" value="Search" class="form-control btn btn-primary w100"></p> 
     </form> 

     <div id="results"></div> 
    </div> 



    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="../js/AS.js"></script> 
    <script src="https://apis.google.com/js/api.js"></script> 
    <script> 
     function init() { 
     gapi.client.init({ 
      'apiKey':'key here', 
     }); 
     search(); 
     } 
     gapi.load('client',init); 
    </script> 

    </body> 

</html> 






           JavaScript 

function tplawesome(e,t){res=e;for(var n=0;n<t.length;n++){res=res.replace(/\{\{(.*?)\}\}/g,function(e,r){return t[n][r]})}return res} 


function search() { 
    $("form").on("submit", function(e) { 
     e.preventDefault(); 
     // prepare the request 
     var request = gapi.client.youtube.search.list({ 
      part: "snippet", 
      type: "video", 
      q: encodeURIComponent($("#search").val()).replace(/%20/g, "+"), 
      maxResults: 3, 
      order: "viewCount", 
     }); 
     // execute the request 
     request.execute(function(response) { 
      var results = response.result; 
      $("#results").html(""); 
      $.each(results.items, function(index, item) { 
      $.get("item.html", function(data) { 
       $("#results").append(tplawesome(data, [{"title":item.snippet.title, "videoid":item.id.videoId}])); 
      }); 
      }); 
      resetVideoHeight(); 
     }); 
    }); 

    $(window).on("resize", resetVideoHeight); 
}; 

function resetVideoHeight() { 
    $(".video").css("height", $("#results").width() * 9/16); 
} 

答えて

0

あなたはYoutubeのAPIを呼び出すために使用しているコードを表示できますか?あなたは純粋なJavaScriptでAPIデータを取得することができます。

var xhr = new XMLHttpRequest(); xhr.open("GET", " https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=CHANNEL_ID&maxResults=1&fields=items&order=date&key=API_KEY ", false); xhr.send(); document.write(xhr.responseText);

あなたはjavascriptを介して、シェルスクリプトをトリガしてみてください、とシェルスクリプトは、APIコードを実行することでしたか?

は、どうやらこれが働いた: https://stackoverflow.com/a/21484756/7922428

0

YouTubeのAPIのdoesntの仕事をあなたのローカルテストは、ローカルサーバーを介して行われ、インターネットへの接続なし。ここで

は私の提案は以下のとおりです。SimpleHTTPServer -m

  • 使用Nodejs
  • 使用パイソン