我已經在我的iPhone應用程序根據this教程實現FBConnect
SSO。到目前爲止,我已在兩部手機上進行了測試,其中一部可讓我使用該功能,而另一部手機只是打開Facebook應用程序並立即關閉它。我能夠建立一個有效的會議,但對話似乎只關閉其中一個。
可能是什麼問題?任何幫助深表感謝。Facebook連接SSO不工作的一些iPhone手機
回答
我認爲你的問題是你沒有正確的配置,無論是在客戶端(您的應用程序),或在服務器端(在FB應用程序配置)。請檢查兩件事如下:
客戶端應用程序:
確保您已經介紹了正確的FBAppId到您的Info.plist作爲URL處理。 Facebook將嘗試使用此處理程序打開該應用程序,如果它不起作用,則您的應用程序將不會打開。
(與你的FB的appid替換XXXXXXXXXX
)
檢查是否您的應用程序(在的appDelegate)處理上面添加自定義網址:
- (BOOL)handleOpenURL:(NSURL*)url
{
NSString* scheme = [url scheme];
NSString* prefix = [NSString stringWithFormat:@"fb%@", facebookAppId];
if ([scheme hasPrefix:prefix]) {
return [fb handleOpenURL:url];
}
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [self handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [self handleOpenURL:url];
}
服務器端
檢查您是否正確配置了您的bundl在FB配置頁面中輸入。您可以在https://developers.facebook.com/apps檢查,請選擇您的應用程序,然後在編輯面板:
如果你有兩件事正確配置,它應該在任何情況下工作(安裝了FBapp或Safari瀏覽器爲基礎)。
感謝您的詳細答案,我只是更新,Facebook的樣品,以及存在的問題存在。你可以在設備上自己測試它。 – zakishaheen 2012-09-07 14:28:44
請參閱https://developers.facebook.com/bugs/361792887232488?browse=search_504a052eac5980628824152 – zakishaheen 2012-09-07 14:32:05
我與3.0 SDK看到了這一點。它發生的原因是因爲Facebook緩存訪問令牌的方式。訪問令牌既緩存在你的應用中,也緩存在設備上的Facebook應用中(至少在概念上)。
如果這是你開始在設備上你的應用程序在第一時間,Facebook不會在你的應用程序有效的訪問令牌緩存。但是,它可能在您的應用的Facebook應用中仍然有一個有效的訪問令牌。如果它在Facebook上找到一個,那麼它不必再次詢問用戶,所以對話框出現然後消失,並且它發回訪問令牌。訪問令牌隨後會緩存到您的應用中。
如果重新啓動您的應用程序(而不刪除它),你將不會看到登錄對話框,因爲在所有的訪問令牌在您的應用程序緩存的作用。如果您在設備上刪除應用並重新登錄,您會看到相同的行爲,只要Facebook可以在其上找到緩存的令牌。
我已經找到了解決這一問題。以下是一些示例代碼:
if (![FBSession activeSession].isOpen) {
FBSession *session = [[FBSession alloc] initWithAppID:nil permissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone urlSchemeSuffix:nil tokenCacheStrategy:nil];
[FBSession setActiveSession:session];
[session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
// NOTE openActiveSessionWithPermissions causes the facebook app to hang with a blank dialog if my app is installed, authed, and then reinstalled. openWithBehavior
// does not. I think it has something to do with the FBSession activeSession.
// [FBSession openActiveSessionWithPermissions:self.permissions allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
switch (status) {
case FBSessionStateOpen:
[self getFacebookUser];
break;
case FBSessionStateClosed:
[self fbSessionClosed];
break;
case FBSessionStateCreated:
[self fbSessionCreated];
break;
case FBSessionStateCreatedOpening:
[self fbSessionOpening];
break;
case FBSessionStateClosedLoginFailed:
[self fbSessionClosedLoginFailed];
break;
case FBSessionStateOpenTokenExtended:
[self fbSessionOpenTokenExtended];
break;
case FBSessionStateCreatedTokenLoaded:
[self fbSessionCreatedTokenLoaded];
break;
}
}];
}
}
openActiveSessionWithPermissions會導致問題,但openWithBehavior不會。 openActiveSession調用同一個openWithBehavior調用,但我認爲設置活動會話的時機不同,因此不起作用。如果我在調用openWithBehavior之前設置活動會話,一切似乎都正常。就你的應用和最終用戶而言,一切都是一樣的。
如果您有iOS SDK 6.0,則尤其如此,那麼應用程序根本無法打開。 – 2012-09-07 08:17:39
我已經找到了解決這個問題的辦法@JoakimEngstrom。 – 2012-10-01 05:54:28
但是這種方法不會使用Facebook SDK 3.1中引入的本地登錄。但它的工作。 – 2012-10-01 09:04:46
您需要在整個代碼中插入合適的日誌記錄,發佈代碼併發布正在工作和失敗情況下的日誌。
爲了使日誌(請參閱here爲更先進的技術):
NSLog(@"My log text");
在你需要從Facebook的API(在添加記錄所有的回調最低甚至那些你不使用)以及應用程序委託中的handleOpenURL and openUrl方法。
當您連接正在測試的設備時,您的日誌將出現在Xcode管理器的控制檯中 - 這應該會告訴您發生了什麼。如果已安裝,Facebook SDK代碼將首先嚐試使用本機應用程序,否則它將啓動Safari瀏覽器以通過Facebook的Web版本請求授權。
您應該仔細檢查您的Facebook URL方案配置,如AngelGarcíaOlloqui的回答中所述。
我知道。問題是我的應用程序調用Facebook API非常好。登錄發生,FB應用程序不會調用我自己的應用程序。 Facebook樣本也是如此。 – zakishaheen 2012-09-07 14:30:08
- 1. Facebook連接XFBML不工作
- 2. 手錶連接不工作
- 3. Facebook的Sso集成不工作
- 4. Facebook分享不是iphone手機瀏覽器工作
- 5. Facebook連接iphone iphone
- 6. Facebook的註銷未通過Facebook連接iPhone API正常工作
- 7. iPhone - Facebook連接
- 8. Facebook連接的手機連接網址是什麼?
- 9. 會議笨不工作的一些手機
- 10. Facebook連接集成不再工作
- 11. 手機菜單鏈接不工作
- 12. Iphone和Facebook連接?
- 13. 問題與Facebook SSO iPhone上
- 14. Javascript代碼不能在一些手機上工作
- 15. Facebook上的iPhone連接
- 16. Facebook iOS本機應用程序SSO無法正常工作?
- 17. GPS手機連接
- 18. CAS認證和Facebook如何連接SSO作品?
- 19. Facebook的喜歡框不會與Facebook連接工作
- 20. Facebook的登錄不工作的手機角Satellizer
- 21. Facebook的樣箱不工作的手機瀏覽器
- 22. Jquery手機:$ .mobile.showPageLoadingMsg()不工作
- 23. 使Facebook的連接與ASP.Net MVC工作
- 24. Facebook連接問題與iPhone
- 25. iPhone Facebook連接:「需要Cookie」
- 26. 將iPhone與Facebook API連接
- 27. iPhone上的弱連接拒絕工作
- 28. Android:套接字連接在特定手機中不起作用
- 29. 外接MapPoint的工作在某些機器上,而不是其他一些
- 30. 手機Facebook連接到我自己的服務器
這也發生在我身上..檢查FBapp ID是否設置正確 – iMeMyself 2012-08-01 06:47:36
我會研究它。我認爲這與一部手機安裝了Facebook應用程序而另一部沒有安裝Facebook應用程序有關。 – 2012-08-01 06:55:36
你的意思是說FB SDK? – iMeMyself 2012-08-01 07:32:59