У меня есть код VB. net в настольном приложении, которое использует FB API для получения различной информации. Однако я сталкиваюсь с ошибкой, которую просто не могу понять. Может быть, я устал.
Dim pageFeedUrl As String = "/" + pageid + "/feed?fields=message,id,created_time,from,likes.summary(true)"
Dim pagefeed = client.[Get](pageFeedUrl)
For Each data As Object In pagefeed("data")
Dim pagepost__1 As New PagePost()
pagepost__1.postMessage = DirectCast(data.message, String)
pagepost__1.postid = DirectCast(data.id, String)
Dim datetime__2 As DateTime
DateTime.TryParse(data.created_time, datetime__2)
pagepost__1.postTime = datetime__2
pagepost__1.postAuthor = DirectCast(data.from.name, String)
pagepost__1.postAuthorid = DirectCast(data.from.id, String)
Dim getPostAuthorImageUrl As String = "/" + pagepost__1.postAuthorid + "?fields=picture.width(50).height(50)"
Dim postAuthorimage = client.[Get](getPostAuthorImageUrl)
Dim uri As New Uri(Convert.ToString(postAuthorimage.picture.data.url), UriKind.Absolute)
pagepost__1.postAuthorImage = New BitmapImage(uri)
pagepost__1.HasLiked = CBool(data.likes.summary.has_liked)
Dim likeCount As Integer = Convert.ToInt32(data.likes.summary.total_count)
If likeCount > 2 Then
pagepost__1.LikeText = data.likes.data(0).name.ToString() + " and " + (likeCount - 1).ToString() + " others"
Последняя строка выдает ошибку «Индекс был вне допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции».
Когда я проверяю URL или используйте GRAPH API EXPLORER, я получаю достоверные результаты ...
{
"data": [
{
"message": "The full text of the message was here",
"id": "21901xxxxxxxxxx_31759xxxxxxxxxxx",
"created_time": "2020-05-27T12:05:19+0000",
"from": {
"name": "ABCDE",
"id": "21901xxxxxxxxxx"
},
"likes": {
"data": [
{
"id": "186355xxxxxxxxxx",
"name": "Axxxxxxx Gxxxxx"
},
{
"id": "313491xxxxxxxxxx",
"name": "Dxxxxxx Txxxxxxx"
},
{
"id": "281300xxxxxxxxxx",
"name": "Bxxxx Oxxxxxxx"
},
{
"id": "137751xxxxxxxxxx",
"name": "Sxxxxx Dxxxxx"
Итак, исходя из результатов выше, почему
data.likes.data (0). name.ToString ()
не работает. Это должно вернуть «Axxxxxxx Gxxxxx» , но вместо этого я получаю сообщение об ошибке. Есть предложения?