2016-08-16 2 views
0

Я использую C# Facebook SDK https://github.com/facebook-csharp-sdk/facebook-csharp-sdk скачано с Nuget в моем приложении MVC, чтобы получить общедоступные альбомы со страницы.C# Facebook SDK Get Image Picture Неизвестный ответ facebook

Все запросы работают нормально, кроме одного, когда я пытаюсь получить обложку альбома.

var PictureUrl = "1713516952246958/picture"; 
var PictureResult = FB.Get(PictureUrl); 

Он бросает исключение "Неизвестный ответ facebook."

То же запрос работает здесь

https://developers.facebook.com/tools/explorer?method=GET&path=1713516952246958%2Fpicture&version=v2.7

Любые идеи, что должно быть проблемой?

ответ

0

Я создал запрос с WebClient, как это:

 WebClient p = new WebClient(); 
     p.QueryString.Add("access_token", accessToken); 

     string responseData = p.DownloadString("https://graph.facebook.com/v2.7/me/picture"); 

и réponse вернулся с неловкой строки данных, которые имели несколько \ 0001 и слово «Photoshop 3.0» в нем.

Похоже, что C# FaceBook SDK не знает, как обрабатывать ответ на маршрут API. Ответ представляется двоичным данным в некотором формате из Photoshop. Всякий раз, когда я пробую запрос и проверяю его почтальоном или браузером, он просто показывает изображение как тело запроса, он не показывает какой-либо кодировки base64, как я ожидал. Here is a small screen shot of the weird data.

Это, вероятно, нереализованная функция, которая должна быть выполнена в SDK.

5

У меня была точно такая же проблема, и это сводило меня с ума.

В конце концов я подумал проверить документацию: https://developers.facebook.com/docs/graph-api/reference/user/picture/

В основном это говорит: By default this edge will return a 302 redirect to the picture image. To get access to the data about the picture, please include **redirect=false** in your query.

Так ошибка «неизвестный ответ facebook» вы получали потому, что вместо действительного JSON возвращается 302 редирект был фактически возвращен. Что, конечно, не может быть корректно распознан

Так попробуйте изменить код:

var PictureUrl = "1713516952246958/picture?redirect=false"; 
var PictureResult = FB.Get(PictureUrl); 

И вы должны быть сладкими!

+0

Большое вам спасибо! – user943369