如何获取用户邮政编码和地址?

时间:2012-01-17 16:54:18

标签: facebook-c#-sdk

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

任何人都有任何他们可以分享的代码指向我的方向吗?

2 个答案:

答案 0 :(得分:1)

Facebook 没有这些信息(对于那些使用Facebook Credits而且除了信用卡详细信息之外提供此信息的人可能不是这样)并且没有提供通过API获取它的任何方式。< / p>

您可以获得的唯一信息是Hometown和Current City(需要用户的权限)。

<强>更新
似乎Facebook确实拥有此信息,并通过请求user_address权限提供了获取此信息的方法。有关详细信息User Address and Mobile Phone Number

,请参阅开发人员博客上的帖子

<强> UPDATE2:
似乎address字段不再有效,如评论从上面的链接发布

<强> UPDATE3:
三天后发布的Improvements to Permissions for Address and Mobile Number帖子包含“临时”禁用此功能的信息。

  

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

答案 1 :(得分: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" />