1

PFUser *aUser = [PFUser currentUser]; //現在のユーザーではない可能性があります NSLog("username %@", [aUser username]); //これは、FB ユーザーでなくても問題ありません。それ以外の場合は、トークンを提供します。CURRENT LOGGED USER がリンクされていることを返す [PFUser isLinkedWithUser:aUser] があることは知っていますが、aUser はこのデバイスの現在のユーザーではない可能性があります。

これは currentUser に対しては問題なく機能します。

+ (void)getUsernameWithCompletionBlock:(void(^)(NSString *username))handler {
if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){ //<- 
    FBRequest *request = [FBRequest requestForMe];
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if (!error) {
        NSDictionary *userData = (NSDictionary *)result;
        NSString *name = userData[@"name"];
        handler(name);
    }}];
} else {
    handler([[PFUser currentUser] username]);
}

}

しかし、私はこのようなものが欲しい

+(void)getUsernameWithUser:(PFUser *)user andCompletionBlock:(void(^)(NSString     *username))handler {
if([PFFacebookUtils isLinkedWithUser:user]){ //<- THIS ALWAYS RETURN FALSE
   //return the real facebook username
   } else {
         handler([user username]);
     }
 }

ドキュメントには次のように書かれています: isLinkedWithUser:

ユーザーのアカウントが Facebook にリンクされているかどうか。

(BOOL)isLinkedWithUser:(PFUser *)user パラメータ user Facebook リンクをチェックするユーザー。ユーザーはこのデバイスにログインしている必要があります。何か案は?

4

1 に答える 1