我正在尝试使用 C# 的 vimeo API。 我成功地使用 vimeo API 创建并列出了 vimeo 文件夹。
但是,我找不到如何使用 API 创建子文件夹和列出子文件夹项目 我看了官方文档,但没有找到相关的API。 我还在 vimeo 网站上测试了我的视频页面,但我可以创建同名的文件夹。
我读过 vimeo 文件夹最初是“project”。 我怀疑 vimeo API 可能还不支持子文件夹系统。
有什么方法可以使用 Vimeo API 处理子文件夹吗?
Vimeo 的 API 文档创建文件夹缺少重要但可选的参数parent_folder_uri,该参数允许您在父文件夹下创建子文件夹。
https://developer.vimeo.com/api/reference/folders?version=3.4#_essentials
使用与常规创建文件夹请求相同的端点。
POST /users/{user_id}/projects
但是,除了 name 参数之外,还包括 parent_folder_uri ,格式如下。
{
name: "My Subfolder",
parent_folder_uri: "/users/{userId}/projects/{parent_project_id}"
}
这是一个奇怪的实现。我不知道为什么你必须将父文件夹的 URL 作为字符串传递,而不仅仅是 project_id,但它可以工作,所以我没有抱怨
您必须首先创建一个文件夹,然后从 Json 响应中获取顶级 Uri 文件夹!,并使用此文件夹 Uri 创建子文件夹。
let endpoint = URL(string: "https://api.vimeo.com/me/folders")!
var request = URLRequest(url: endpoint)
request.httpMethod = "POST"
let headers: [String: String] = [
"Accept": "application/vnd.vimeo.*+json;version=3.4",
"Authorization": "Bearer \(accessToken)",
"Content-Type": "application/json",
]
request.allHTTPHeaderFields = headers
let parameters: [String: Any] = [
"name": "subFolderName",
"parent_folder_uri": parentFolderUri
]
if let bodyData = try? JSONSerialization.data(withJSONObject: parameters) {
request.httpBody = bodyData
} else {
// Handle JSON serialization error
print("Error serializing JSON.")
}
URLSession.shared.dataTask(with: request) { data , response , error in
if let error = error {
print("Error: SubFolder: \(error.localizedDescription)")
}
if let data = data {
if let stringResponse = String(data: data, encoding: .utf8) {
print("stringResponseSubFolder: \(stringResponse)")
}
}
if let httpResponse = response as? HTTPURLResponse {
print("httpResponse: \(httpResponse.statusCode)")
}
}.resume()