0

Facebook SDK をアプリケーションに統合しようとしていますが、シミュレーターで完全に動作します。iPhoneにインストールして実行しようとすると、「myappはあなたのプロファイル、フレンドリストなどにアクセスする必要があります」という警告が表示され、許可することを選択しても何も起こらず、これらの許可が必要です。

iPhone に Facebook アプリケーションをインストールし、何度もログアウトと再ログインを試みましたが、使用できませんでした。

しかし、設定に移動して Facebook の詳細を削除すると、完全に機能します。

ここに画像の説明を入力

どうすればこれを修正できますか?

4

3 に答える 3

0

わかりました、私は何がうまくいかないのか知っています。あなたがしていることは何でも正しいが、あなたが望む結果には別の何かが必要だということを私に知らせてください.

これを試して -

まず、すべての facebook SDK デリゲート メソッドをアプリ デリゲートに実装します。

- (IBAction)loginWithFacebookButtonTapped:(id)sender
{
    IntubeAppDelegate *delegat = (IntubeAppDelegate*)[[UIApplication sharedApplication] delegate];
    [delegat doLoginAndSwitch];
}

今、あなたの appDelegate で -

-(void) doLoginAndSwitch
{      
    [self openSessionWithAllowLoginUI:YES];
}

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI
{
    NSArray *permissions = [NSArray arrayWithObjects:@"email", nil]; 
    return [FBSession openActiveSessionWithPublishPermissions:permissions
                                          defaultAudience:FBSessionDefaultAudienceFriends
                                             allowLoginUI:YES
                                        completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {

                                            [self sessionStateChanged:session
                                                                state:state
                                                                error:error];

                                        }];
}

-(BOOL)openSessionWithAllowPublishStreamPermission:(BOOL)allowLoginUI
{
    NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions",@"publish_stream", nil];

    [[FBSession activeSession] requestNewPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone completionHandler:^(FBSession *session, NSError *error){
}];
    return YES;
}

- (void)sessionStateChanged:(FBSession *)session
                  state:(FBSessionState)state
                  error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen:
            if(!error)
            {
              //  NSLog(@"FBSessionStateOpen :- logged in");

                [self openSessionWithAllowPublishStreamPermission:YES];

              // Your code
            }
     }    
} 

また、アプリケーションに戻るには -

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{

    return [FBSession.activeSession handleOpenURL:url];
}

あなたが今欲しいものを手に入れることを願っています。:)

于 2013-08-26T08:16:13.173 に答える