我正在尝试获取有关Vimeo托管的视频的信息(从我的客户的频道获取,因此没有权限问题)。我正在使用Javascript,特别是d3.js。

使用旧的API和以下类型的url时,请求工作正常:

http://vimeo.com/api/v2/video/video_id.output


例如,这在d3.js中有效:

d3.json("http://vimeo.com/api/v2/video/123456789.json", function(error,data){
   console.log(data);
}):


但是我无法使用这样的url例如,在一个简单的请求中让新的API如此轻松地工作:

https://api.vimeo.com/videos?links=https://vimeo.com/123456789


我需要做什么 ?验证?如果是这样,怎么办?我很高兴在d3的jQuery中获得示例。

最佳答案

Vimeo的API文档并不是最好的,因此您必须深入研究才能真正获得所需的信息。就您而言,如果您只是从不需要用户身份验证的终结点请求数据(例如,根据用例检索视频的元数据),则无需遍历整个OAuth2循环。

首先,您需要转到https://developer.vimeo.com/apps来创建一个新应用:

javascript - JavaScript中的Vimeo API GET请求-LMLPHP

您可以在Vimeo应用程序页面上的生成访问令牌部分下简单地生成个人访问令牌:

javascript - JavaScript中的Vimeo API GET请求-LMLPHP

请记住,此令牌仅可见一次(因此,在生成令牌时将其复制):并且必须确保其安全! The access token should be part of the Authorization header's bearer token。如果您使用的是cURL,它将如下所示:

curl -H "Authorization: Bearer <YourPersonalAccessToken>" https://api.vimeo.com/videos/123456789


因此,尽管您可以在页面上执行以下操作以在客户端上检索视频元数据,但请注意,您实际上是在向外界公开私有令牌:

d3.json("https://api.vimeo.com/videos/123456789/")
  .header("Authorization", "Bearer <YourPersonalAccessToken>")
  .get(function(error, data) {
    console.log(data);
  });


但是,我强烈建议您通过自己的服务器代理此请求,即在服务器上创建一个自定义终结点,例如/getVimeoVideoMetadata。该API端点将接收视频ID,并会在发出请求之前添加您在服务器上秘密存储的访问令牌。这将屏蔽您的网站访问者的访问令牌。

关于javascript - JavaScript中的Vimeo API GET请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46582015/

10-12 13:10