Я пытаюсь получить изображение альбома из Facebook с помощью SDK facebook C # в приложении Silverlight со следующим кодом:
FacebookClient client = new FacebookClient(this.Profile.AccessToken);
client.GetAsync(string.Format("/{0}/picture?type=small", this.ID));
client.GetCompleted += (s, e) =>
{
dynamic result = e;
};
Где this.ID - идентификатор альбома, но яэта ошибка: неожиданный символ при синтаксическом анализе значения: �.Строка 1, позиция 1. из метода DeserializeObject в JsonSerializer.Проблема в том, что facebook не возвращает данные json с помощью imge uri или чего-то в этом роде, но они фактически возвращают само изображение в двоичных данных.У кого-нибудь есть идеи, как я могу справиться с этим результатом или просто передать Ури изображение?У меня есть обходной путь для этого, используя этот код:
var request = WebRequest.Create(string.Format("https://graph.facebook.com/{0}/picture?access_token={1}", this.ID, this.Profile.AccessToken));
request.BeginGetResponse(ar =>
{
using (var response = ((WebRequest)ar.AsyncState).EndGetResponse(ar))
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
this.Picture = new BitmapImage(new Uri(response.ResponseUri.AbsoluteUri));
}
);
}
}, request);
Но я действительно хотел использовать только Facebook C # SDK для получения данных.использовать:
FacebookClient client = new FacebookClient(this.Profile.AccessToken);
client.QueryAsync(String.Format("SELECT src_small, src_big, src FROM photo WHERE pid IN (SELECT cover_pid FROM album WHERE object_id={0})", this.ID));
client.GetCompleted += (s, e) =>
{
dynamic result = e.GetResultData();
Deployment.Current.Dispatcher.BeginInvoke(() => this.Picture = result[0].src_small);
};