この質問はFacebook SDK for iOS , on iOS 4.0 deviceとよく似ていますが、そこにコメントできないので、私は新しい質問を開きます。ios6 facebook integration login常にFBSessionStateClosedLoginFailedは開けません
私のアプリのFacebookブックへの統合を更新しようとすると、facebookセッションを開くことができません。sessionStateChangedコールバックを開くことは常にFBSessionStateClosedLoginFailedで終わります。私のセットアップで私は私の控除のコールバックを持っています
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
// return [self.session handleOpenURL:url];
return [FBSession.activeSession handleOpenURL:url];
}
しかし決して呼ばれません!それは呼ばれるべきではありませんか?私はFacebookのマニュアルを参照して、その後、私はまた後でpublish_actions許可を再承認する意思を持つFacebookのチュートリアルの例のように、アクセス権のためnil
で
openActiveSessionWithReadPermissions
を試してみました
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions", nil];
return [FBSession openActiveSessionWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
を呼び出します。同じ結果:FBSessionStateClosedLoginが再び失敗しました。
私もセッションを開こうとする前に、
ACAccountStore *accountStore;
ACAccountType *accountTypeFB;
if ((accountStore = [[ACAccountStore alloc] init]) &&
(accountTypeFB = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook])){
NSArray *fbAccounts = [accountStore accountsWithAccountType:accountTypeFB];
id account;
if (fbAccounts && [fbAccounts count] > 0 &&
(account = [fbAccounts objectAtIndex:0])){
[accountStore renewCredentialsForAccount:account completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) {
//we don't actually need to inspect renewResult or error.
if (error){
}
}];
}
}
を呼び出してみましたが、私は私のios6デバイス(iPhoneの4S)のそれがオープン取得することはありません。アプリケーションでは、私は許可を求められていますが、セッションは常にFBSessionStateClosedLoginFailed状態を持っているので何も起こりません!セッション状態のための私のコールバックは、私のFacebookアプリが正しく設定されているので、私は問題がなかったIOS 5 Facebookで3.0と
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
}
break;
case FBSessionStateClosed:
NSLog(@"FBSessionStateClosed");
case FBSessionStateClosedLoginFailed:
NSLog(@"FBSessionStateClosedLoginFailed");
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter]
postNotificationName:FBSessionStateChangedNotification
object:session];
if (error) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"facebook Hinweis"
message:@"facebook Login nicht möglich, bitte versuchen Sie es erneut."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
NSLog(@"Facebook session error: %@", error.localizedDescription);
}
}
です。 wchichがfacebookのセッションを開くだけで、facebook 3.1でこれらの問題に遭遇するとは思っていなかったので、本当に助けていただければ幸いです。
注意:Xcodeのios6およびios5シミュレータでは完全に機能します。実際のデバイス上でのみ説明されているようには開きません。デバイスにはFacebookが有効になっており、Facebookがインストールされており、Facebookアカウントに接続されています。 – robscure
私はあなたよりも怪しい問題を抱えています。同じコード、普遍的なアプリですが、fbロジックに条件はありません。 –
私は同じ問題があります。あなたはすでにそれを解決しましたか? – edward