C# 在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

我想在Windows Phone 8.1上使用Graph REST API在Facebook上上传视频,下面给出的是我的代码,它不会引发异常但不工作,只是执行时卡住了

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();