我将 D3.js 与 Facebook PHP SDK 结合使用来显示访问者的朋友。每个朋友都显示在一个带有姓名和个人资料图片的小 div 中。
我的问题是 Facebook API 没有返回个人资料图片的直接链接。相反,您必须使用类似https://graph.facebook.com/UserID/picture?redirect=false
的 URL,并且图片的 URL 以 JSON 格式返回。所有其他朋友数据已被提取并存储在 Javascript 数组中。
现在,我设置了一个 AJAX 调用来处理这个问题,但由于它的异步性质,它不起作用。获取图片 URL 后,DOM 已经加载并且图像获取<img src="undefined">
.
来自 main.js
function ajax(path) {
$.ajax({
type: "GET",
url: "ajax.php",
data: {'path': path},
success: function(data) {
return data; //returned data is correct
}
})
}
// d3 code
profile.append("img")
.attr("src", function(d) { return ajax(d.id); }) //this is "undefined"
.attr("class", "thumb");
来自 ajax.php
$path = file_get_contents('https://graph.facebook.com/' . $_GET['path'] . '/picture?redirect=false');
echo json_decode($path)->data->url;