我使用facebook-c#-sdk 5.0.25在我的fb帐户中列出相册
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没有返回任何值。
答案 0 :(得分:1)
很难从您发布的代码段中判断出来,但似乎您试图将Count转换为字符串(来自变量名称strAlbCnt)。
Count是一个JSON整数 - official documentation声称它是一个字符串,但就像文档中的许多其他内容一样,不准确。检查this public example of an album以查看我的意思:
"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整数。
我不能肯定这是你问题的原因,但我之前遇到过来自动态对象的类似问题,所以我很快就会怀疑它。
答案 1 :(得分:0)
不确定这是否与您遇到的问题相同,但我有类似的事情:
int albumCount == Data.count;
这会引发转换异常,因为count字段实际上很长。所以这很有效:
long albumCount == Data.count;