Facebook sdk iOS图片从请求返回为零

时间:2012-06-07 15:14:37

标签: ios facebook-graph-api

因此,在我提交到应用程序商店之前,我接管的所有内容都是从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]; 

版本中的某些内容是否会发生变化,或者我正在查看其他一些内部问题。

由于

1 个答案:

答案 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.....]

的请求完全相同