如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题

Posted

技术标签:

【中文标题】如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题【英文标题】:How to get Youtube video title with v3 URL API in javascript w Ajax & JSON 【发布时间】:2015-03-17 02:44:07 【问题描述】:

我只是想获取 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);
      
  );

谢谢,

【问题讨论】:

【参考方案1】:

以下 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);
      
  );

【讨论】:

这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript【参考方案2】:

我让它工作了

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/ ,与建议的格式相同,但不知何故出错了。现在我已经弄清楚原因了。

【讨论】:

这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript? 我的理解是,您可以在 Google 的设置页面中将您的域链接到您的 API 密钥!这样 Youtube 就知道 API 调用的来源,因此其他人不能简单地使用您的 API 密钥。不过,我遇到了一些让它工作的问题,所以我有一个问题悬而未决。那里有评论,但我还没试过:***.com/questions/28032237/… 收到此错误消息怎么办:No 'Access-Control-Allow-Origin' header is present on the requested resource. 这是 CORS 问题。你可以查查看。如果您使用 jQuery 或从后端服务器调用,则有不同的处理方式。并查看此帖子:***.com/questions/47523265/…

以上是关于如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题的主要内容,如果未能解决你的问题,请参考以下文章

Ajax

上传文件后,如何在 Django 中使用 AJAX 更新表(与 JavaScript 链接)?

用于 Javascript/JSON 的 ORM

如何使用ajax将json传入后台数据

如何使用 Ajax 和 ASP.NET WebMethod 传递 JSON 对象

如何使用 Typescript 进行 AJAX 请求? (使用 JSON)