我遇到了一个有趣的bug,只是想知道是否有人遇到过同样的问题(因为我在谷歌2小时后找不到任何关于它的信息):
我将facebook SDK(最新的版本23. 2011年9月)初衷化为:
facebook = [[Facebook alloc] initWithAppId:FACEBOOK_APP_ID andDelegate:self];
之后,我想在没有授权对话框的情况下向用户Wall发送一些信息:
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: FACEBOOK_APP_ID,@"app_id",@"http://itunes.apple.com/de/app/idxyz",@"link",@"http://example.com/app_icon90px_d_p_i_g.png",@"picture",@"AppName",@"name",@"awesome new App. Look at it. Yadda Yadda Yadda",@"caption",@"Here's an even more interesting description",@"description",nil]; [facebook dialog:@"Feed" andParams:params andDelegate:self];
会发生什么:Facebook对话框打开并询问用户电子邮件和密码.很酷,每个人都很好.但是如果我向系统提供我的电子邮件和密码,它不会改回到post-to-wall对话框,而是显示facebook用户/主页.如果您现在中止对话框并调用上面的方法,它将直接转到Feed-dialoge.首先使用facebook验证应用程序的解决方法是没有解决方案:-(
解决方法
现在是2012年5月,我遇到了类似的问题,用户已经通过SSO进行了身份验证,但是当我调用Feed对话框时,它会弹出带有登录页面的web模式而不是普通的Feed对话框.
说出它的Facebook服务器问题,我不能再次重新发布这个问题,然后再进行一天的调试.
更多细节:
我没有请求offline_access,因为它将在7月份被弃用.所以起初我认为这就是我的会话到期的原因,我检查了有关在applicationDidBecomeActive中自动扩展令牌的所有内容.但问题仍然存在.
然后,我甚至打印出令牌,并使用浏览器上的graph.facebook.com/me/permissions调用来检查令牌的有效性!