答案将是这样的方法:
var vimeoUploadUrl =等待getVimeoUploadUrl(videoFileSizeInBytes,accessToken);
为此,您必须拥有一个Vimeo帐户(此帐户可用于Plus级别或更高级别,不了解其他帐户),已经创建了Vimeo应用程序(在Vimeo中),并被授予上传权限,并获得了访问权限令牌。完成所有操作后,代码如下:
HttpClient httpClient = new HttpClient();
public async Task<string> getVimeoUploadUrl(int videoFileSize, string accessToken)
{
var vimeoUploadUrl = "";
string vimeoApiUrl = "https://api.vimeo.com/me/videos"; // Vimeo URL
try
{
string body =
@"{'upload': {'approach': 'post','size': '" + videoFileSize + "'}}".Replace("'", "\"");
HttpContent content = new StringContent(body);
using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, vimeoApiUrl))
{
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", accessToken);
requestMessage.Headers.Add("Accept", "application/vnd.vimeo.*+json;version=3.4");
requestMessage.Headers.Add("ContentType", "application/x-www-form-urlencoded");
requestMessage.Content = content;
var response = await httpClient.SendAsync(requestMessage);
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
var vimeoTicket = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);
vimeoUploadUrl = vimeoTicket.SelectToken("upload.upload_link").ToString();
var videoLinkForUseAfterUploading = vimeoTicket.GetValue("link").ToString();
Console.WriteLine("videoLinkForUseAfterUploading: " + videoLinkForUseAfterUploading);
string videoNumber = videoLinkForUseAfterUploading.Substring(videoLinkForUseAfterUploading.LastIndexOf("/") + 1);
Console.WriteLine("videoNumber: " + videoNumber);
}
}
catch (Exception err)
{
var errMessage = err.Message;
Console.WriteLine("In getVimeoUploadUrl() error: " + err.Message);
}
return vimeoUploadUrl;
}
我投入了一些您可能想使用的额外数据,这些数据未在方法中使用或返回。