#iphone #objective-c #ios #facebook
#iPhone #objective-c #iOS #Facebook
Вопрос:
Я пытаюсь получить любой альбом пользователя facebook в приложении для iPhone. Вот запрос fql, который я использую
NSString *query = [NSString stringWithFormat:@"SELECT aid,object_id,owner FROM album WHERE owner=%d",fid];
где fid — это допустимый uid facebook, хранящийся в переменной int
результат, который я получаю, — это NSArray
класс с количеством 0
что я делаю не так?
Следуя тому, что было предложено в первом ответе, я теперь пытаюсь использовать graph api таким образом:
query = [NSString stringWithFormat:@"/%d/albums",fid];
[_facebook requestWithGraphPath:query andDelegate:self];
на этот раз результатом является a NSDictionary
с ключом «data», возвращающим пустое NSArray
значение .
В любом случае, после трех попыток получить список альбомов таким образом, я также получаю сообщение об ошибке, которое я распечатываю (как локальное, так и описание ошибки) в консоли:
localized error : The operation couldn’t be completed. (facebookErrDomain error 10000.)
rror : Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x18b5b0 {error=<CFBasicHash 0x176050 [0x3e2169fc]>{type = mutable dict, count = 2,
entries =>
2 : <CFString 0x18ccc0 [0x3e2169fc]>{contents = "type"} = <CFString 0x18c990 [0x3e2169fc]>{contents = "OAuthException"}
3 : <CFString 0x190a90 [0x3e2169fc]>{contents = "message"} = <CFString 0x18c0d0 [0x3e2169fc]>{contents = "(#803) Some of the aliases you requested do not exist: 2147483647"}
}
}
Есть идеи?
Ответ №1:
Имеет ли ваш токен авторизации разрешение на просмотр альбомов этого пользователя? В противном случае я не уверен.
Вы можете рассмотреть возможность использования Graph API вместо FQL. На iOS вы можете использовать библиотеку Facebook (доступна здесь).
Это обеспечивает метод requestWithGraphPath:andDelegate:
. Вам нужен путь к графу {user_id}/albums
.
Ваш результат возвращается к методу делегирования request:didLoad:
, но основным преимуществом, которое может помочь вам решить вашу проблему, является необязательный метод делегирования request:didFailWithError:
. При возникновении ошибки это предоставляет гораздо больше информации, чем просто пустой массив.