不能显示姓氏facebook js sdk?

时间:2015-09-19 06:08:42

标签: javascript html facebook

我正在尝试使用Javascript SDK在表单中显示用户的姓氏,但它无效。

HTML:

  <tr>
    <td align="center">Post as:</td>
    <td align="center"><div id='lastname'></div></td>
  </tr>

JS:

<script>
  FB.init({
    appId      : '411404219053578',
    status     : true,
    xfbml      : true,
    version    : 'v2.4' // or v2.0, v2.1, v2.0
  });



FB.api('/me', {fields: 'last_name'}, function(response) {
document.getElementById('lastname').innerHTML = response;
});
</script>

我做错了吗?还有什么我应该用来显示名字?

1 个答案:

答案 0 :(得分:2)

问题是响应是Object而不是String。因此,当您将其指定为innerHTML时,它就不会像您期望的那样工作。 要解决代码中的问题,您应该指定要像这样使用last_name&#34; response.last_name&#34;或者整个街区:

var collection = drawnItems.toGeoJSON();

要获得名称,或者我认为你的名字是第一个名字,你有两个选择:

1)在您的请求中,将 first_name 添加为其中一个字段。您可以将此 {fields:&#39; last_name&#39;} 更改为此 {fields:&#39; last_name,first_name&#39;} 。我们的想法是,您可以通过用逗号分隔每个字段来请求facebook API提供的任何字段。您的案例中的完整区块可能是这样的:

FB.api('/me', {fields: 'last_name'}, function(response) {
  document.getElementById('lastname').innerHTML = response.last_name;
});

2)但是,如果你想要的只是显示全名,你可以省略传递字段对象,你将得到的是全名。它看起来像这样:

FB.api('/me', {fields: 'last_name,first_name'}, function(response) {
  document.getElementById('lastname').innerHTML = response.first_name + response.last_name;
});