C# Facebook SDK Получить изображение Изображение Неизвестный ответ facebook

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

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

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

Выдает исключение "Неизвестный ответ facebook".

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

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

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


person Michael Samteladze    schedule 16.08.2016    source источник


Ответы (2)


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

В конце концов я решил проверить документацию: 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);

И ты должен быть милым!

person Sam Barber    schedule 19.10.2016
comment
Большое спасибо! - person user943369; 09.02.2017

Я создал запрос с помощью WebClient следующим образом:

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

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

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

Похоже, что C# FaceBook SDK не знает, как обрабатывать ответ на маршрут API. Ответ выглядит как двоичные данные в каком-то формате из Photoshop. Всякий раз, когда я пробую запрос и проверяю его с помощью почтальона или браузера, он просто показывает изображение в качестве тела запроса, он не показывает какую-либо кодировку base64, как я ожидал. Вот небольшой снимок экрана со странными данными.

Вероятно, это нереализованная функция, которую необходимо реализовать в SDK.

person Derrick Granowski    schedule 04.09.2016