2011-05-05 166 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」,留言:「你應該更多地瞭解這個真棒遊戲」,數據:「跟蹤信息爲用戶'});