Я пытаюсь загрузить фотографии из Windows phone (манго) в Facebook с объектом BackgroundTransferRequest. Это потому, что я хочу загружать фотографии, даже если приложение не запущено.
Я использую Facebook C # SDK для получения токена доступа и т. Д., И это прекрасно работает, но для загрузки с помощью этого нам нужно поддерживать приложение активным.
Я могу использовать fiddler и создать запрос Post с токеном доступа и загрузить изображение в facebook в альбом.
https://graph.facebook.com/178040612256938/Photos/?access_token=AAACEdEose0cBAA4p0Ozqj0H39RP2tGyxdq0LAxoADyBZCPgjgrXMwU93VAOVkulemC3ZC5lVZCTiJ3rYeFXtM67tYNEZBvPQmasbT9AvX
Теперь вот мой код, который я взял здесь из примера - http://msdn.microsoft.com/en-us/library/hh202959(v=vs.92).aspx
Я не уверен, как добавить заголовки, которые добавляет fiddler, ИЛИ как использовать это для загрузки фотографий в FB. получая 400 в качестве ответа. В настоящее время следующий код может загрузить фотографию в мой сервис WCF.
также посмотрел - BackgroundTransferRequest WP7
IsolatedStorageFileExtensions.SavePicture (Path.Combine (TransfersFiles, picture.FileName), picture.Data);
string fbURL = @"https://graph.facebook.com/106216062727932/Photos/?access_token=AAACEdEose0cBAA4p0Ozqj0H39RP2tGyxdq0LAxoADyBZCPgjgrXMwU93VAOVkulemC3ZC5lVZCTiJ3rYeFXtM67tYNEZBvPQmasbT9AvD";
var transferRequest = new BackgroundTransferRequest(new Uri(fbURL, UriKind.Absolute));
if (!_wifiOnly)
{
transferRequest.TransferPreferences = TransferPreferences.AllowCellular;
}
if (!_externalPowerOnly)
{
transferRequest.TransferPreferences = TransferPreferences.AllowBattery;
}
if (!_wifiOnly && !_externalPowerOnly)
{
transferRequest.TransferPreferences = TransferPreferences.AllowCellularAndBattery;
}
//this is the place to upload to Facebook
transferRequest.Method = "POST";
//_OLD transferRequest.UploadLocation = new Uri(TransfersFiles + @"\" + picture.FileName, UriKind.Relative);
transferRequest.UploadLocation = new Uri(TransfersFiles + @"\" + picture.FileName, UriKind.Relative);
string boundary = DateTime.Now.Ticks.ToString("x", CultureInfo.InvariantCulture);
//---
transferRequest.TransferStatusChanged += OnTransferStatusChanged;
transferRequest.TransferProgressChanged += OnTransferProgressChanged;
BackgroundTransferService.Add(transferRequest);