首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过PHP、Javascript或API使用我的网站连接到vimeo?

如何通过PHP、Javascript或API使用我的网站连接到vimeo?
EN

Stack Overflow用户
提问于 2021-07-27 21:52:38
回答 1查看 60关注 0票数 0

我目前在一个网站上工作,我想自动添加最近上传到我的vimeo帐户的视频。我发现我必须首先使用API,但我不知道有什么API可以做到这一点。所以我想出了这个主意:

1-首先,使用php或javascript等连接到我的vimeo帐户。从我的网站在案例中结束到管理页面。

2-获取带有DOM的HTML,我在视频的url中找到了视频的ID。

3-创建一个函数,自动替换来自vimeo在我的网站上给你的视频中的URL的ID。

vimeo给你的代码是:

代码语言:javascript
运行
复制
<iframe src="https://player.vimeo.com/video/563338183?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="position:absolute;top:0;left:0;width:40%;height:40%;" title="HIEBEL_GRAND VITRAIL_0621_57400"></iframe><script src="https://player.vimeo.com/api/player.js"></script>

来自vimeo的视频URL:

代码语言:javascript
运行
复制
https://vimeo.com/manage/videos/123456789/1234a56789

要想做到这一点,我必须要保持联系。

连接弹出窗口:

我在网上找到了一些Jquery函数,但我认为它不是我想要的:

代码语言:javascript
运行
复制
jQuery(function($){
    $('#result').load('https://vimeo.com/fr/');
});

如果你们有解决方案,我将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 16:10:50

好了,在尝试了很多次并寻找了一个可以工作的代码之后,我终于找到了!

这就是关键:

代码语言:javascript
运行
复制
import React from "react";
import ReactDOM from "react-dom";
import axios from "axios";

const CLIENT_IDENTIFIER = "***INSERT CLIENT ID***";
const CLIENT_SECRET =
  "***INSERT TOKEN***";

class App extends React.Component {
  state = {
    vimeo: []
  };

  async getVideosForChannel(access_token) {
    const { data } = await axios.get(
      "https://api.vimeo.com/channels/***CHANNEL NAME***/videos?sort=date&direction=desc",
      {
        headers: {
          Authorization: `Bearer ${access_token}`
        }
      }
    );

    this.setState({ vimeo: data.data });
  }

  async componentDidMount() {
    if (!CLIENT_IDENTIFIER || !CLIENT_SECRET) {
      return alert("Please provide a CLIENT_IDENTIFIER and CLIENT_SECRET");
    }

    try {
      const { data } = await axios.post(
        "https://api.vimeo.com/oauth/authorize/client",
        { grant_type: "client_credentials" },
        {
          auth: {
            username: CLIENT_IDENTIFIER,
            password: CLIENT_SECRET
          }
        }
      );

      this.getVideosForChannel(data.access_token);
    } catch (error) {
      if (error.response.status === 429) {
        alert(
          "The Vimeo api has received too many requests, please try again in an hour or so"
        );
      }
    }
  }

  render() {
    return (
      <div className="App">
        <ul>
          {this.state.vimeo.map(({ resource_key, link, name }) => (
            <li key={resource_key}>
              <a id="lien" href={link}>
                {name}
              </a>
              <p>{link}</p>
            </li>
          ))}
        </ul>
      </div>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

您必须确保安装了react才能使其正常工作。

(感谢这个叫https://codesandbox.io/s/pwro9p7w8j?file=/src/index.js的家伙)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68546198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档