objective-c - 执行 Facebook 查询时没有返回结果

标签 objective-c ios facebook facebook-fql

我正在尝试使用 Facebook 查询获取帮助列表(专辑 ID)。

什么有效:

从浏览器运行查询返回结果,但当我使用 Facebook Connect 运行它时没有返回任何值。

我遇到的问题是特定于专辑对象,我在查询用户表时得到结果。

我能想到的唯一真正区别是从浏览器运行时包含 access_token 参数,从浏览器运行时没有此参数则什么都不返回。

身份验证:

我正在使用 OAuth 进行身份验证,如下所述:Mobile Apps - Getting Started 查询时是否需要在参数列表中包含access_token?

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    facebook = [[Facebook alloc] initWithAppId:@"<myAppId>"];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![facebook isSessionValid]) {
        [facebook authorize:nil delegate:self];
    }

    NSArray* permissions =  [[NSArray arrayWithObjects:
                              @"email", @"read_stream", nil] retain];

    [facebook authorize:permissions delegate:self];

    NSString *fql = [NSString stringWithFormat:@"SELECT aid FROM album WHERE owner=me()"];

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:fql, @"query", @"json", @"format", nil];

    [facebook requestWithMethodName:@"fql.query" andParams:params andHttpMethod:@"GET" andDelegate:self];   

    return YES;
}
- (void)request:(FBRequest *)request didLoad:(id)result {
    if ([result isKindOfClass:[NSArray class]]) {
        result = [result objectAtIndex:0];  }

    NSLog(@"didLoad() received result: %@", result);
}

最佳答案

是的,您绝对需要包含 access_token 字段。在允许您访问该用户的数据之前,我们会验证访问 token 是否有权访问 user_photos 权限。

关于objective-c - 执行 Facebook 查询时没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773263/

相关文章:

ios - 用花栗鼠物理学创建一个圆,但半径太大?

ios - 使用自定义标签栏自动调整 View 的内容插图

ios - 供应配置文件不包括应用程序标识符和钥匙串(keychain)访问组权利

ios - 如何将 SpriteKit AdBanner 放置在 View 的顶部?

ios - 在 UITableViewCell 的 UIButton 位置插入 UIView

objective-c - 是否可以从另一个 UIViewController 的 uiview 加载 UIVIewcontroller

ios - 删除对象时 mutableArrayValueForKey NSMutableArray 崩溃

facebook - cordova-plugin-facebook4 - 带有 "Not Logged In: You are not logged in. Please login and try again"的空白对话框

facebook - 使用 FB 的 API 获取通过我的 Facebook 应用程序制作的墙贴

iphone - Facebook SDK 3.0 与 iOS 5 和 Xcode 4.2