この質問を助けてください!アプリ ログイン facebook を作成したいのですが、デバイスに Facebook アプリがインストールされている場合、ユーザーが Facebook にログインするときにアプリが Facebook アプリを呼び出します。Facebook アプリがインストールされていない場合、アプリは sarafi なしでポップアップ ログイン ビューを表示しますか?
質問する
2178 次
3 に答える
2
共有キットを使用する場合は、SDK の facebook.m クラスに移動して、次のメソッドを見つけます。
- (void)authorize:(NSArray *)permissions
delegate:(id<FBSessionDelegate>)delegate
次に、最後の行を次のように置き換えます。[self authorizeWithFBAppAuth:YES safariAuth:YES];
この行で: [self authorizeWithFBAppAuth:YES safariAuth:NO;
& check.
于 2013-01-10T03:50:56.757 に答える
0
Facebook SDK を使用している場合は、FBSession を使用してセッションを開くことができます。
- (void)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
// NSLog(@"openSessionWithAllowLoginUI:");
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_photos",
@"publish_actions",
@"read_stream",
@"friends_photos",
@"email" ,
nil];//You can add similar permissions according to your app.
[FBSession setActiveSession:[[FBSession alloc] initWithPermissions:permissions]];
[[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
NSLog(@" state=%d",state);
// handle the completion handler...
}];
}
これにより、Facebook アプリが電話にインストールされている場合は開き、ログインしていない場合はポップアップが表示されます。デバイスにネイティブ アプリがインストールされていない場合は、サファリが使用されます。
Facebook でアクションを実行する前に、次を使用して FBSession が開いていてアクティブであるかどうかを必ず確認してください。
于 2013-01-10T05:05:33.470 に答える
0
これにより、Facebook セッションの開始が処理されます。
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (status == FBSessionStateOpen || status == FBSessionStateOpenTokenExtended)
{
NSLog(@"Logged in!");
}
}];
アプリのデリゲートがコールバック URL も処理することを確認してください。
- (BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [FBSession.activeSession handleOpenURL:url];
}
于 2013-01-10T04:57:02.993 に答える