Не могу получить нет. фотографий в альбоме Facebook - PullRequest
1 голос
/ 13 мая 2011

Я перечисляю фотоальбомы в моей учетной записи fb, используя facebook-c # -sdk 5.0.25

        var fb = new FacebookClient();
        fb.AccessToken = facebookOAuthResult.AccessToken;

        IDictionary<string, object> albums = fb.Get("me/albums") as IDictionary<string, object>;

        dynamic albumList = albums["data"];

        foreach (dynamic albumInfo in albumList)
        {
            strAlbid = albumInfo.id;
            strAlbName = albumInfo.name;
            strAlbDesc = albumInfo.description;
            strAlbCnt = albumInfo.count;
            strAlbInfo = albumInfo.link;
        }

Но я не могу получить нет.фотографий в альбоме, потому что albumInfo.count не возвращает никаких значений.

Ответы [ 2 ]

1 голос
/ 14 мая 2011

Сложно сказать по опубликованному вами фрагменту, но похоже, что вы пытаетесь привести Count в качестве строки (из имени переменной strAlbCnt).

Счетчик - это целое число JSON - официальная документация утверждает, что это строка, но, как и многие другие элементы документации, она не точна. Проверьте этот публичный пример альбома , чтобы понять, что я имею в виду:

"name": "Happy Lunar New Year 2011",
"link": "http://www.facebook.com/album.php?aid=324257&id=20531316728",
"cover_photo": "10150146072661729",
"count": 79,
"type": "normal",

Обратите внимание, что cover_photo является строкой, несмотря на то, что она числовая, но у Count нет кавычек, что делает ее целым числом JSON.

Не могу с уверенностью сказать, что это является причиной вашей проблемы, но у меня раньше были похожие проблемы с динамическими объектами, поэтому я сразу заподозрил это.

0 голосов
/ 05 июня 2012

Не уверен, что это та же проблема, с которой вы столкнулись, но у меня было что-то похожее на это:

int albumCount == Data.count;

Это вызовет исключение преобразования, потому что поле count на самом деле длинное. Так это сработало:

long albumCount == Data.count;
...