2011-05-05 120 views
0

我正在使用FB单点登录为我的iPhone应用程序。 我需要通过我的iPhone应用程序发送朋友请求到Facebook上的人... 因为没有添加朋友对话框可用于iPhone ..所以我在WebView中打开。 如果我的iPhone是不是多任务..然后它弹出登录FB登录对话框在登录时间和 没有问题在webview中... 如果它的多任务..然后我要去FB应用程序或Safari ..但在这种情况下,当我在webview中打开FB页面时,它再次请求凭证。 有什么方法可以避免此问题吗?在iPhone登录后在WebView中再次登录Facebook我

+0

有同样的问题,可用,你有没有想出一个变通的呢? – tiltem 2011-07-22 21:59:39

回答

0

我不知道你是否已经这样做。但是您需要做的是将您从FB获取的accessToken存储在手机中。稍后,无论何时打开应用程序,都应该检查此令牌并根据该令牌执行操作。这很明显在docs

因此,基本上你需要在打开浏览器视图之前检查“accessToken/secret key”。在浏览器视图中,您将传递此accessToken。看看这blog post以更好地了解这一点。

而且打开的对话框中尝试使用方法Facebook.h

- (void)dialog:(NSString *)action 
andDelegate:(id<FBDialogDelegate>)delegate; 

- (void)dialog:(NSString *)action 
andParams:(NSMutableDictionary *)params 
andDelegate:(id <FBDialogDelegate>)delegate; 
1

如果应用程序运行的是不支持多任务处理的iOS版本,则SDK使用旧的弹出内联UIWebView的机制,提示用户登录并授予访问权限。 FBSessionDelegate是应用程序应该实现的回调接口:当应用程序成功登录或注销时,它的方法将被调用。

你可以摆脱编辑Facebook.m源码的SSO,只需在更改[self authorizeWithFBAppAuth:YES safariAuth:YES]执行authorize:delegate:方法中更改一行: to [self authorizeWithFBAppAuth:NO safariAuth:NO];

1

使用SSO。在手机上登录到FB的用户仍然会为您的应用程序登录。

要求FB上的一个人正确的做法应该是在这里https://developers.facebook.com/docs/reference/dialogs/requests/

FB.ui({方法:“apprequests”,留言:“你应该更多地了解这个真棒游戏”,数据:“跟踪信息为用户'});