我目前在一个网站上工作,我想自动添加最近上传到我的vimeo帐户的视频。我发现我必须首先使用API,但我不知道有什么API可以做到这一点。所以我想出了这个主意:
1-首先,使用php或javascript等连接到我的vimeo帐户。从我的网站在案例中结束到管理页面。
2-获取带有DOM的HTML,我在视频的url中找到了视频的ID。
3-创建一个函数,自动替换来自vimeo在我的网站上给你的视频中的URL的ID。
vimeo给你的代码是:
<iframe src="https://player.vimeo.com/video/563338183?badge=0&autopause=0&player_id=0&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:
https://vimeo.com/manage/videos/123456789/1234a56789
要想做到这一点,我必须要保持联系。
连接弹出窗口:
我在网上找到了一些Jquery函数,但我认为它不是我想要的:
jQuery(function($){
$('#result').load('https://vimeo.com/fr/');
});
如果你们有解决方案,我将不胜感激
发布于 2021-07-29 16:10:50
好了,在尝试了很多次并寻找了一个可以工作的代码之后,我终于找到了!
这就是关键:
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的家伙)
https://stackoverflow.com/questions/68546198
复制相似问题