Vimeo API javascript 中的 GET 请求

Vimeo API GET request in javascript

我正在尝试获取有关 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);
}):

但是我无法让新的 API 在简单的请求中轻松工作,例如使用这种类型的 url :

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

我需要做什么?认证?如果是这样,如何?如果能在 d3 的 jQuery 中获得示例,我将不胜感激。

Vimeo 的 API 文档不是最好的,因此您必须仔细研究才能真正获得所需的信息。在您的情况下,如果您只是从不需要用户身份验证的端点请求数据,例如根据您的用例检索视频的元数据,则无需完成整个 OAuth2 循环。

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

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

请记住,此令牌只会显示一次(因此在生成时复制它):并且您必须保证它的安全! 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,并在发出请求之前添加您在服务器上秘密存储的访问令牌。这将对您的网站访问者隐藏您的访问令牌。