【问题标题】:Facebook graph API issue with the iOS SDKiOS SDK 的 Facebook 图形 API 问题
【发布时间】:2011-07-20 07:22:59
【问题描述】:

我遇到了 Facebook 图形 API 的问题,更准确地说是 iOS SDK。我的代码过去可以正常工作,但现在我在尝试使用它时收到此错误描述(获取个人提要、朋友提要、朋友列表……):

Err details: Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x7113b80 {error=<CFBasicHash 0x7113910 [0x176e400]>{type = mutable dict, count = 2,
entries =>
    2 : <CFString 0x7121e60 [0x176e400]>{contents = "type"} = <CFString 0x7113a20 [0x176e400]>{contents = "OAuthException"}
    3 : <CFString 0x7113b40 [0x176e400]>{contents = "message"} = <CFString 0x7113a00 [0x176e400]>{contents = "An access token is required to request this resource."}
}
}

有人知道它可能来自哪里吗?

这也是我的源代码:

facebook = [[Facebook alloc] initWithAppId:@"00000000000000"];
    NSArray *permissions =  [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain];
    [facebook authorize:permissions delegate:self];
    [facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self];

【问题讨论】:

标签: ios facebook sdk facebook-graph-api


【解决方案1】:

嗯,我自己确实发现 Facebook SDK 有点棘手,但我看到了一些希望能有所帮助的东西。

首先,我认为您在输入问题随附的代码时可能错误地复制了几种方法。 “facebook”对象的分配是设置委托的地方,“authorize”方法只需要一个 NSMutableDictionary 参数。为清楚起见,代码应如下所示:

facebook = [[Facebook alloc] initWithAppId:@"00000000000000" andDelegate:self];
NSArray *permissions =  [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain];
[facebook authorize:permissions];
[facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self];

除此之外,唯一真正的问题是您在应用有时间完全授权之前调用了图形 API。这些调用都是异步完成的,因此在授权过程实际上返回有效的访问令牌之前,主线程正在继续您的requestWithGraphPath:andDelegate 调用。您可以将此调用或任何其他类似调用移动到按钮 onClick 处理程序中,或者为了更直接的测试,移动到 Facebook 会话委托方法 fbDidLogin

希望有帮助!

【讨论】:

    【解决方案2】:

    此外,offline_access 已被贬低,他们建议检查 app init 以扩展令牌 - 请参阅文档,但此处为 sn-p:

    -(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt { NSLog(@"token extended"); [self storeAuthData:accessToken expiresAt:expiresAt]; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2011-09-07
      相关资源
      最近更新 更多