【问题标题】:Facebook sdk iOS pictures returning from request as nil从请求返回的 Facebook sdk iOS 图片为零
【发布时间】:2012-06-08 00:48:50
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: ios facebook-graph-api


    【解决方案1】:

    我遇到了类似的问题,并得出结论认为这是 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.....] 发出的请求完全相同

    【讨论】:

    • 嗯..这可行,但似乎返回了一个字典,其中包含照片的 url 字符串..这是预期的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多