1

因此,在我提交到应用商店之前,在我接管的应用程序中,所有内容都可以从 Facebook 正常加载。然后我无法使用 Facebook 应用程序进行验证。所以我决定通过注释掉 Facebook.m 中的一些内容来强制用户使用对话框。以前的开发人员没有包含任何 .m 文件,而是使用包含 .a 文件的旧 sdk 版本。所以我决定使用较新的 sdk 版本并包含所有 .m 文件。现在的问题是在应用程序中发生了以下行为:

 [facebook requestWithGraphPath:@"me" andDelegate:self]; 

成功加载用户名(当然是在登录时)并且:

 [facebook requestWithGraphPath:@"me/home" andDelegate:self]; 

成功加载提要项目数据。

然而,

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]; 

是否在版本中进行了一些会影响这一点的更改,或者我是否正在查看其他一些内部问题。

谢谢

4

1 回答 1

0

我遇到了类似的问题,并得出结论认为这是 Facebook 实现 SDK 或服务器端的问题。获取图片的方法是使用 FQL 查询,然后按预期返回数据,实际上让您可以更好地控制想要返回的数据。这与执行 SQL 选择语句非常相似(并且实际上并没有变得非常复杂,因此如果您是新手,很容易上手..)

此处的文档: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.....]

于 2012-06-07T16:41:42.057 回答