javascript - 无法显示姓氏 facebook js sdk?

标签 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>

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

最佳答案

问题是响应是一个对象而不是字符串。因此,当您将其指定为innerHTML 时,它就不会按您的预期工作。 要解决代码中的问题,您应该指定要使用last_name(如“response.last_name”)或整个 block :

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

要获取名称,或者我假设您指的是名字,您有两个选择:

1) 在您的请求中,添加first_name 作为字段之一。您可以通过将此 {fields: 'last_name'} 更改为 {fields: 'last_name,first_name'} 来实现此目的。这个想法是,您可以通过用逗号分隔每个字段来请求 facebook API 提供的任何字段。您的情况下的完整 block 可能是这样的:

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

2) 但如果您只想显示全名,则可以省略传递 fields 对象,您将返回的是全名。它看起来像这样:

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

关于javascript - 无法显示姓氏 facebook js sdk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664884/

相关文章:

facebook - 范围无效 : user_location. 一键facebook登录时?

facebook - 检查用户是否是特定 Facebook 群组的成员

javascript - 在 Javascript 中保留复杂数组

javascript - 具有阴影根的元素会中断文本选择

javascript - 媒体查询导航栏中的 Fa 图标分布

html - Div类浏览器高度

facebook - 到期后如何在不重新加载页面的情况下获得新的访问 token ?

javascript - 获取ajax数据并显示在bootstrap modal上

javascript - 单击幻灯片时切换多个隐藏的 div

javascript - 选择下拉菜单出现在 Shiny 的其他元素后面