2013-11-02 24 views
5

FBGraphObjectを使用してユーザーの国、州、市区町村を取得しようとしています。国、都道府県、市区町村を取得する

hometown = { 
    id = 112118618814985; 
    name = "La Paz, Bolivia"; 
}; 

(私の市は国ボリビア、ラパスと呼ばれる):返さFBGraphObjectは、以下の情報部分が含まれています。

は実際に「状態」を返す場合はうまく機能します。ウィチタ、アメリカのカンザス州から誰かが私のアプリを実行した場合、結果は次のようになります。

hometown = { 
    name = "Wichita, Kansas"; 
}; 

(その人の都市がアメリカであるウィチタの状態でウィチタ、です...問題がありますFBGraphObjectは私には言いません、これは米国にあります)。

私は最初のグラフオブジェクトの故郷のプロパティを見たとき、私はすぐに私はこれを取得するには、トークンのコマを使用して文字列をスプラット場合、私はそれで仕事ができると思った:

La Paz 
Bolivia 

その後、私はすぐに知っているだろう最初のオブジェクトは都市を表し、2番目のオブジェクトは国を表します。

米国のような国では、最初の要素はまだ都市を表していますが、2番目の要素は状態を表しているため、そこからトークン化されたデータを格納することはできません。

iOS向けFacebookSDKを使用して、国、州、市を正しく取得するにはどうすればよいですか?それをやってくれた人は誰もがPHPで動作するように思えたので、私は頭を悩ましていますが、私はこれをiPhone自体で動作させる必要があります。

EDIT:記録のために、これは私がすべてを取得しようとしている方法です:

[FBRequestConnection startForMeWithCompletionHandler: 
^(FBRequestConnection *connection, id result, NSError *error) { 
    if(error == nil) 
    { 
     FBGraphObject<FBGraphUser, FBGraphLocation> *graph = result; 
     NSLog(@"%@", graph); 

     [[SPAccount sharedAccount] linkFacebookAccountWithGraphObject:graph 
     andCompletionBlock:^(BOOL linked) {}]; 
    } 
}]; 

そして、次の戻りnilのすべて:

graph.location.country 
graph.country 
graph.location.location.country 

答えて

0

あなたが通過位置を取得することができますFBGraphUserのlocationプロパティ。 FBGraphPlaceに準拠したオブジェクトが表示されます。コード

[FBSession openActiveSessionWithReadPermissions:@[@"email",@"user_location",@"user_birthday",@"user_hometown"] 
            allowLoginUI:YES 
           completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 

            switch (state) { 
             case FBSessionStateOpen: 
              [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { 
               if (error) { 

                NSLog(@"error:%@",error); 


               } 
               else 
               {             
                // retrive user's details at here as shown below 
                NSLog(@"FB user first name:%@",user.first_name); 
                NSLog(@"FB user last name:%@",user.last_name); 
                NSLog(@"FB user birthday:%@",user.birthday); 
                NSLog(@"FB user location:%@",user.location); 
                NSLog(@"FB user username:%@",user.username); 
                NSLog(@"FB user gender:%@",[user objectForKey:@"gender"]); 
                NSLog(@"email id:%@",[user objectForKey:@"email"]); 
                NSLog(@"location:%@", [NSString stringWithFormat:@"Location: %@\n\n", 
                     user.location[@"name"]]); 

               } 
              }]; 
              break; 

             case FBSessionStateClosed: 
             case FBSessionStateClosedLoginFailed: 
              [FBSession.activeSession closeAndClearTokenInformation]; 
              break; 

             default: 
              break; 
            } 

           } ]; 

city 
country 
latitude 
longitude 
state 
street 
zip 

又は

インポートFacebookSDK/FacebookSDK.h:FBGraphPlaceの配座に位置プロパティは、次のような特性を有するFBGraphLocationプロトコルに準拠するオブジェクトであります

関連する問題