2012-01-17 161 views
3

我在使用Facebook C#SDK(webforms,asp.net的服务器端)方面相当新颖。你将如何获取用户的地址和邮政编码?这是一个子表,所以我假设你首先必须获得位置ID,然后从该链接到该位置,然后检索地址,zip等。如何获取用户邮政编码和地址?

任何人都有任何代码可以共享以指向我一个方向?

回答

1

Facebook 没有此信息(对于那些使用Facebook Credits的用户可能不适用,并且已提供此信息在信用卡详细信息)和 不提供任何方式通过API获取它。

您可以获得的唯一信息是家乡和当前城市(需要用户的许可)。

更新:
看来,Facebook的确实有这个信息,并提供了一种方法通过请求user_address权限得到它。请参阅张贴在开发者博客了解更多详情User Address and Mobile Phone Number

UPDATE2:
似乎address场不工作了,如意见指出从链接张贴上述

UPDATE3:
Improvements to Permissions for Address and Mobile Number的职位,过了三天后又有关于“临时”禁用此功能的信息。

我们将尽快启动这些更新,并暂时禁用此功能,直到这些更改准备就绪。

+0

嗯,所以他们不等同于这个老方法(HTTP:// developers.facebook.com/docs/reference/rest/users.getInfo/)? – 2012-01-17 17:28:38

0

我已经找到一种方式来获得大部分信息:

用户的信息可以通过调用来检索,如: https://graph.facebook.com/me (见this link

一旦你有一个用户您可以通过以下方式获取位置ID: response.location.id

如果您使用该ID作为here,您将看到一个如下所示的对象:

{ 
"name": "Hurricane, Utah", 
"is_published": true, 
"is_community_page": true, 
"description": "blah...blah...blah", 
"location": { 
    "city": "Hurricane", 
    "state": "UT", 
    "country": "United States", 
    "latitude": 37.1742, 
    "longitude": -113.326 
}, 
"checkins": 677, 
"were_here_count": 14647, 
"talking_about_count": 1391, 
"category": "City", 
"id": "112177375464163", 
"link": "http://www.facebook.com/pages/Hurricane-Utah/112177375464163", 
"likes": 1730 
} 

我的代码(JavaScript的):

var locationFunc = function (response) { 
    document.getElementById('loginForm:fbCity').value = response.location.city; 
    document.getElementById('loginForm:fbState').value = response.location.state; 
hiddenBtn = document.getElementById('loginForm:hiddenBtn'); 
hiddenBtn.click(); 
} 

var meFunc = function(response) { 
document.getElementById('loginForm:fbUserID').value = response.id; 
document.getElementById('loginForm:fbFirstName').value = response.first_name; 
document.getElementById('loginForm:fbLastName').value = response.last_name; 
document.getElementById('loginForm:fbEmail').value = response.email; 
FB.api('/' + response.location.id, locationFunc); 
} 

var loginFunc = function (response) { 
FB.api('/me', meFunc); 
} 

function fbAsyncInitLocal() { 
FB.Event.subscribe('auth.authResponseChange', (loginFunc)); 
} 
window.fbAsyncInit = fbAsyncInitLocal; 

我的代码(JSF - ICEfaces的):

<ice:inputText id="fbUserID" name="fbUserID" immediate="true" style="display:none"/> 
<ice:inputText id="fbFirstName" name="fbFirstName" immediate="true" style="display:none"/> 
<ice:inputText id="fbLastName" name="fbLastName" immediate="true" style="display:none"/> 
<ice:inputText id="fbEmail" name="fbEmail" immediate="true" style="display:none"/> 
<ice:inputText id="fbCity" name="fbCity" immediate="true" style="display:none"/> 
<ice:inputText id="fbState" name="fbState" immediate="true" style="display:none"/> 
<ice:commandButton id="hiddenBtn" name="hiddenBtn" action="#{CustomerBB.fbLoginAction}" immediate="true" style="display:none" /> 
+0

由于我的帖子2天前城市国家和国家不再返回的位置对象。非常令人沮丧。 :( – 2012-09-10 15:55:53

相关问题