我的应用曾经使用fb sdk for ios(版本3.1)进行以下fb api图形查询(原始查询):
NSString *fbquery = [NSString stringWithFormat:@"search?type=place¢er=48.8567,2.3508&distance=1000&limit=40&fields=picture.width(200),cover];
这不再适用了。我检查了文档并发现它可以附加一个app访问令牌。这适用于ib(版本3.5.3)的fb sdk中的以下查询:
NSString *fbquery = [NSString stringWithFormat:@"search?type=place¢er=48.8567,2.3508&distance=1000&limit=40&fields=picture,cover&access_token=%@", appDelegate.session.accessTokenData.accessToken];
查询结果:
{
data = (
{
id = 165207683494457;
picture = {
data = {
"is_silhouette" = 0;
url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276836_165207683494457_49288222_q.jpg";
};
};
},
{
id = 151161104922563;
...
...
但是当我尝试指定要检索的图片宽度时,就像在原始查询中一样:picture.width(200)
然后我收到错误:
{com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 1;
message = "An unknown error has occurred.";
type = OAuthException;
};
};
code = 500;
}, com.facebook.sdk:HTTPStatusCode=500}
- 搜索页面和地点对象需要应用访问令牌。
- 所有其他端点都需要用户访问令牌。
我已经使用了app访问令牌,因此它应该可以工作,但事实并非如此。
我该怎么办?问题在哪里?
我的建议是尝试使用用户访问令牌,但如何从appDelegate.session
中检索?无法在那里找到用户访问令牌。
我现在使用(如上所述,版本3.5.3中的ios的fb sdk。
答案 0 :(得分:0)
Facebook图形API正在发生变化,如果您知道图片ID
,现在有更智能的方式来获取图片您可以使用此网址重定向到所需分辨率的图片网址:
@"https://graph.facebook.com/%llu/picture?width=256&height=256&access_token=%@"
其中%llu是图片ID的位置,%@是fb标记
所以你的fql请求可能会更小,你可以根据你需要的分辨率动态编写url