我目前正在構建一個社交媒體應用程序,允許用戶通過Facebook註冊。我的註冊過程正常,但我想要做的一件事就是請求用戶城市和州,並將它們作爲單獨的密鑰存儲在我的數據庫中。這樣我可以允許用戶在我的應用程序中按城市或州搜索用戶。分別存儲Facebook用戶的城市和國家
我已經設置FBRequestConnection方法並將用戶位置作爲一個整體。
是否可以查詢城市和州並分別存儲它們?如果是這樣,有什麼建議?
在此先感謝!
我目前正在構建一個社交媒體應用程序,允許用戶通過Facebook註冊。我的註冊過程正常,但我想要做的一件事就是請求用戶城市和州,並將它們作爲單獨的密鑰存儲在我的數據庫中。這樣我可以允許用戶在我的應用程序中按城市或州搜索用戶。分別存儲Facebook用戶的城市和國家
我已經設置FBRequestConnection方法並將用戶位置作爲一個整體。
是否可以查詢城市和州並分別存儲它們?如果是這樣,有什麼建議?
在此先感謝!
從評論你現在這樣做:
[FBRequestrequestForMe]
然後:
if ([result objectForKey:@"location"]) {
NSString *facebookLocation = [[result objectForKey:@"location"] objectForKey:@"name"];
[[PFUser currentUser] setObject:facebookLocation forKey:@"location"];
}
的result
是FBGraphUser
對象和要訪問的location
屬性是一個FBGraphPlace
對象:
https://developers.facebook.com/docs/reference/ios/current/protocol/FBGraphPlace
您正在訪問FBGraphPlace
的name
屬性,該屬性將爲您提供該地點的NSString表示形式。你想要做的是訪問location
屬性,它是一個FBGraphLocation
。這個對象的各種組件的屬性你想要的:
https://developers.facebook.com/docs/reference/ios/current/protocol/FBGraphLocation
(我不是在Mac上,現在,所以有可能在這段代碼中的一些錯誤),你應該能夠做這樣的事:
id<FBGraphUser> fbUser = (id<FBGraphUser>)result;
id<FBGraphPlace> fbPlace = [fbUser location];
id<FBGraphLocation> fbLocation = [fbPlace location];
NSString * userCity = [fbLocation city];
NSString * userCountry = [fbLocation country];
NSString * userZip = [fbLocation zip];
//etc
然後,您可以使用這些信息,但是你會用你的分析用戶喜歡:
[[PFUser currentUser] setObject:userCity forKey:@"city"];
[[PFUser currentUser] setObject:userZip forKey:@"zip"];
這太棒了!太感謝了! –
IT無法使用。 – Xeieshan
你能告訴你的代碼,你現在是如何做這個?我假設你正在使用'[FBRequest requestForMe]'獲取用戶的FBGraphUser。 FBGraphUser有一個位置屬性,它是一個FBGraphPlace。 FBGraphPlace具有一個位置屬性,它是一個FBGraphLocation。 FBGraphLocation具有城市,國家,州等的字符串和數字屬性。您現在正在做什麼來獲取位置? – Alex
是的,我正在使用[FBRequestrequestForMe]。然後,我通過以下代碼獲取用戶位置: if([result objectForKey:@「location」]){ NSString * facebookLocation = [[result objectForKey:@「location」] objectForKey:@「name」]; [[PFUser currentUser] setObject:facebookLocation forKey:@「location」]; } –
會有更好的方式提取用戶位置信息嗎? –