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 リンクをチェックするユーザー。ユーザーはこのデバイスにログインしている必要があります。何か案は?