我尝试使用 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/