gpt4 book ai didi

angular - 在 Web 应用程序和移动应用程序中嵌入私有(private) Vimeo 视频——Ionic/Angular

转载 作者:行者123 更新时间:2023-12-04 11:28:29 25 4
gpt4 key购买 nike

我有一种情况,我们既是包含私有(private)视频的 Vimeo 专业帐户的所有者,又是我们嵌入这些视频的 Ionic/Angular 应用程序的开发者。

由于我们不希望任何人都能够在任何地方嵌入这些视频......部署到我们的网络应用程序时,我可以简单地在我们的 Vimeo 帐户中选择“仅将这些视频嵌入到特定域中”的选项并提供域我们的网络应用程序。这工作得很好。

部署到 iOS/Android 时,我没有要添加到“白名单”的特定域,因此我们在嵌入这些视频的应用程序中收到一条错误消息,内容为“抱歉,因为它隐私设置,此视频无法在此处显示。”

我的问题是在阅读了 Vimeo 文档并在网上搜索之后,我似乎找不到任何关于这个特定场景的例子。

似乎我不需要整个 OAuth 的东西,因为我并不是真的要求我的用户使用他们自己的 Vimeo 帐户或让我们访问他们帐户上的任何内容。

我只是想让我们的视频在 Vimeo 上保持私密,但也能够以某种方式将它们嵌入我们的网络和移动应用程序中。

在这里采取的适当路径是什么?我愿意接受任何和所有建议。就目前而言,我暂时将我们的视频设置回“嵌入任何地方”,以便它适用于我们现有的用户,但我真的希望能够将其设置回仅特定域,然后将移动端确定为好。

感谢您的任何帮助或指导!

编辑:我应该说到目前为止我最接近的是这个页面上的这个小片段:https://developer.vimeo.com/api/authentication哪里说...

"注意:如果您想在您自己的网站上嵌入您自己的视频(并且仅使用 Vimeo 进行转码和托管服务),您不需要使用 API 来验证您的应用程序。您需要做的就是生成一个新的 token “从您的应用程序页面,并将其包含在您的应用程序中。这是一种特殊情况,在这种情况下,您既是最终用户又是应用程序所有者。而且因为您很特别,所以您可以跳过本文档的其余部分。”

这似乎正是我想要的,但是没有关于如何做到这一点的进一步说明。

最佳答案

如果您只需要将视频嵌入网站,您可以在 Vimeo 上将您的视频设为私密,并通过访问 https://vimeo.com/settings/videos/upload_defaults 授权将视频嵌入您的网站。 ,设置“您的视频可以嵌入在哪里?”选择“仅我选择的网站”,然后使用“添加域”按钮添加您网站的域。

这适用于网站,但不适用于应用程序(除非您的应用程序包含指向您网站页面的 webview 或 iframe,而不是实际嵌入您的应用程序中的视频)。在这种情况下,一个可能的解决方案是使用视频设置中的分发选项 ( https://vimeo.com/manage/{assetID}/distribution )。在页面底部附近,您会找到“视频文件链接”部分,该部分将为您提供下载或流式传输视频的链接。这些是实际视频的链接,因此无法像通常的嵌入代码链接那样进行控制,因此在使用它们的地点和时间时要小心。

如果您确实需要进行 API 调用,我会遇到一些自己的问题,因此只能提供有限的帮助。目前,我可以对 Vimeo 的 API 端点进行 API 调用(下面包含 PHP 示例),提供我的访问 token ,并获得包含请求信息的结果,但是 仅当我使用的访问 token 是我不久前为旧应用程序生成的访问 token 时。 我生成的任何新访问 token (无论是在我帐户中的新应用程序还是旧应用程序中,似乎都无关紧要)将不起作用。使用 Vimeo 网站上概述的 OAuth 2.0 流程检索的任何访问 token 也是如此。非常令人沮丧...

Vimeo 建议的所有 OAuth 2.0 API 工作流似乎都是为了授予开发人员访问最终用户视频的权限,而不是授予最终用户访问开发人员视频的权限。

    $albumsVideosURL = "https://api.vimeo.com/users/$userID/albums/$albumID/videos?&per_page=2";

$headers = array(
"Content-type: application/json",
"Accept: application/vnd.vimeo.*+json;version=3.4",
"Authorization: Bearer " . $access_token,
"scope: public private video_files",
);

$ch = curl_init($albumsVideosURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
curl_close($ch);

编辑:

我终于让它工作了!而且无需安装 Vimeo 的 PHP SDK 库!

它归结为身份验证类型!我一直在努力 基础版 Oauth ,但需要设置为 承载 !我已经编辑了上面示例中的 PHP 代码以反射(reflect)我目前的理解,我将在下面包含一个 JavaScript 示例。看起来您也不需要在标题中包含内容类型、接受或范围。您真正需要的只是身份验证,并且身份验证必须设置为 Bearer。
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var output = this.responseText;
console.log(output);
}
};
xmlhttp.open("GET", endpoint, true);
xmlhttp.setRequestHeader("Authorization", "Bearer " + access_token);
xmlhttp.send();

我真的希望 Vimeo 支持技术刚刚打开它,而不是反复告诉我设置标题而不告诉我使用什么类型......哦,最终到达那里。

关于angular - 在 Web 应用程序和移动应用程序中嵌入私有(private) Vimeo 视频——Ionic/Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53050333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com