2

Facebook ios SDK 3.5に切り替えて、ユーザーを認証しようとしました

[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
    //callback methods
}];

info.plist ファイルに FacebookAppID、FacebookDisplayName、CFBundleURLSchemes を設定しました。AppDelegate では、次の関数を設定しています。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return [FBSession.activeSession handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL wasHandled = [FBAppCall handleOpenURL:url
                         sourceApplication:sourceApplication];
    // add app-specific handling code here
    return wasHandled;
}

そして今、Facebook アカウントが iPhone 自体にログインしているときに、コールバック ブロックを呼び出すことができるようになりました。これは、FBAppCall の新しいルートを使用していると思います。

しかし、問題は、iPhone FB アカウントをセットアップしないと、アプリがサファリ Web ビューまたは FB アプリを使用して認証を試み、サファリまたはアプリでアクセス許可ボタンを押した後、アプリが呼び出され、イメージを起動しますが、そこでハングアップするだけで、コールバック ブロックが呼び出されることはありません。これはopenurlを処理するアプリケーションの別のルートだと考えていますが、

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

ブレークポイントで停止することはありません。

4

0 に答える 0