因此,在我提交到应用程序商店之前,我接管的所有内容都是从Facebook加载的。然后我无法使用Facebook应用验证。所以我决定强迫用户通过在Facebook.m中注释掉一些内容来使用对话框。以前的开发人员没有包含任何.m文件,而是使用包含.a文件的旧版sdk。所以我决定使用更新的sdk版本并包含所有的.m文件。现在的问题是在应用程序中发生以下行为:
[facebook requestWithGraphPath:@"me" andDelegate:self];
成功加载用户名(当然登录时)和:
[facebook requestWithGraphPath:@"me/home" andDelegate:self];
成功加载Feed项数据。
然而,
NSString *path = [NSString stringWithFormat:@"%@/picture?type=normal", facebookFeedItem.fromId];
[facebook requestWithGraphPath:path andDelegate:self];
其中fromId是用户的id,返回成功的请求,但是照片数据的值为nil。
所以:
NSString *path = [NSString stringWithFormat:@"%@/picture", feedItem.objectIdentifier];
[facebook requestWithGraphPath:path andDelegate:self];
版本中的某些内容是否会发生变化,或者我正在查看其他一些内部问题。
由于
答案 0 :(得分:0)
我遇到了类似的问题,并得出结论认为这是Facebook实施SDK或服务器端的问题。获取图片的方法是使用FQL查询,然后按预期返回数据,实际上可以让您更好地控制想要返回的数据。它与执行SQL select语句非常相似(并且实际上并没有变得非常复杂,所以如果您是新手,它很容易上手......)
这里的文档:http://developers.facebook.com/docs/reference/fql/
您的代码将是这样的(例如,对于登录的用户个人资料图片):
NSString *fqlStatementForProfilePicture = @"SELECT pic FROM user WHERE uid=me()";
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
fqlStatementForProfilePicture, @"query",nil];
FBRequest *theRequest = [facebook requestWithMethodName:@"fql.query"
andParams:params
andHttpMethod:@"GET"
andDelegate:self];
从此处开始,委托回调的行为方式与使用[facebook requestWithGraphPath.....]