5

私はparse.com自分のアプリケーションのバックエンドとして使用しています。これにより、ユーザーは自分の facebook または twitter アカウントからログインできます。また、Twitter/Facebook を既存のアカウントにリンクする機能もあります。

問題は次のとおりです。

ユーザーが自分のアカウントを介してログインすると、クラウド上にfacebook新しいが作成されます。PFUser同じユーザーが自分のtwitterアカウントを使用して再度ログインするPFUserと、クラウド上に別のユーザーが作成されます。facebookユーザーが自分のアカウントを自分のtwitterアカウントにリンクしたい場合、parse.com「この twitter アカウントは既に別のユーザーに接続されています」と返信します。

ここで2つをマージするにはどうすればよいPFUsersですか? この問題を解決する方法を教えてください。

4

3 に答える 3

4

次の 1 つのことを実行できます。

現在のユーザーを別の Facebook/Twitter アカウントにリンクする場合、ある時点でユーザーのリンクを解除する必要があります。ログアウトするときに、現在のユーザーが Facebook/Twitter にリンクされているかどうかを確認する必要があるとしましょう。

現在のユーザーが他のユーザーとリンクしている場合は、Facebook/Twitter ユーザーを他のユーザーと再度リンクできるように、リンクを解除する必要があります。

Facebook ユーザーの場合:

if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){

                [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // User unlinked
                    }else{
                       // Erro while unlink user
                    }
                }];
            }

Twitter ユーザーの場合:

if([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]){

              [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // unlink user
                    }else{
                        // Error while unlink
                    }
}];
}
于 2013-04-27T09:11:53.523 に答える
4

PFTwitterUtils logInWithBlockコードが表示されない場合は、Twitter アカウントをリンクしようとして電話をかけているように聞こえます。Facebookでサインインして作成された既存のPFUserを使用する代わりに、新しいPFUserを作成するだけなので、これは間違ったアプローチです。

代わりに、メソッドを使用して現在のアカウントを Twitter アカウントPFTwitterUtilsにリンクすることをお勧めします。Parse のドキュメントには、それを行うための次のコードが示されています。PFUser

PFUser *user = [PFUser currentUser];
if (![PFTwitterUtils isLinkedWithUser:user]) {
    [PFTwitterUtils linkUser:user block:^(BOOL succeeded, NSError *error) {
        if ([PFTwitterUtils isLinkedWithUser:user]) {
            NSLog(@"Woohoo, user logged in with Twitter!");
        }
    }];
}
于 2013-04-26T14:54:26.787 に答える
3

残念ながら、Facebook や Twitter のアカウントを複数の PFUser に関連付けることはできないようです。さらに、さらに 2 つの PFUser エントリをマージすることはできないようです。Parseの回答はこちらを参照してください。

代わりに、認証目的で厳密に PFUser テーブルにデータを保持し、残りのデータを新しい専用の Parse クラス (たとえば、PFUser エントリが指す userData) に保持することをお勧めします。

その意味で、同じ userData エントリを指す複数の PFUser エントリを使用できるようになります。したがって、Parse バックエンドの特定の Twitter アカウントにリンクされた既存の PFUser エントリがある場合は、その特定の PFUser にユーザーをログインさせ、そのエントリを以前の既存の userData エントリにポイントすることをお勧めします。

于 2013-06-18T19:41:18.507 に答える