C# 在Windows Phone 8.1上使用Graph REST API在Facebook上上传视频
我想在Windows Phone 8.1上使用Graph REST API在Facebook上上传视频,下面给出的是我的代码,它不会引发异常但不工作,只是执行时卡住了C# 在Windows Phone 8.1上使用Graph REST API在Facebook上上传视频,c#,rest,facebook-graph-api,windows-phone,windows-phone-8.1,C#,Rest,Facebook Graph Api,Windows Phone,Windows Phone 8.1,我想在Windows Phone 8.1上使用Graph REST API在Facebook上上传视频,下面给出的是我的代码,它不会引发异常但不工作,只是执行时卡住了 var backgroundUploader = new BackgroundUploader(); //var fs2 = await videoFile.OpenAsync(Windows.Storage.FileAccessMode.Read); backgroundUploader.SetRequestHeader("C
var backgroundUploader = new BackgroundUploader();
//var fs2 = await videoFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
backgroundUploader.SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + "8af25ae9-b1b4-4ff7-908d-27c3fbe7d78a");
backgroundUploader.Method = "POST";
UploadOperation uploadOperation = backgroundUploader.CreateUpload(
(new Uri("https://graph-video.facebook.com/me/videos?title=Title&description=Description&access_token=" + accessToken)),
videoFile);
//It stucks here, no progress for both CreateUploadXXX method
// UploadOperation uploadOperation = await backgroundUploader.CreateUploadFromStreamAsync
// (new Uri("https://graph-video.facebook.com/me/videos?title=Title&description=Description&access_token=" + accessToken),
// fs2.GetInputStreamAt(0));
await uploadOperation.StartAsync();
ResponseInformation response = uploadOperation.GetResponseInformation();
我意识到这并不能回答如何通过图表上传的问题,但作为替代方案,您可以使用共享内容上传视频:
DataTransferManager dataTransferManager;
private void RegisterForShare()
{
if (dataTransferManager == null)
{
dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager,
DataRequestedEventArgs>(this.ShareStorageItemsHandler);
}
}
private async void ShareStorageItemsHandler(DataTransferManager sender, DataRequestedEventArgs e)
{
DataRequest request = e.Request;
request.Data.Properties.Title = "Title Here";
request.Data.Properties.Description = "Description Here";
// Because we are making async calls in the DataRequested event handler,
// we need to get the deferral first.
DataRequestDeferral deferral = request.GetDeferral();
StorageFile videoStorageFile; // set this somewhere
// Make sure we always call Complete on the deferral.
try
{
List<IStorageItem> storageItems = new List<IStorageItem>();
storageItems.Add(videoStorageFile);
request.Data.SetStorageItems(storageItems);
}
finally
{
deferral.Complete();
}
}
Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();