Я могу получить фотографии профиля из этого:
data": [
{
"id": "11111111111_22222222222",
"from": {
"name": "Some Name",
"category": "Non-profit organization",
"id": "11222131212211"
},
Я делаю так:
$.each(json.data,function(i,fb){
html += "<img id=\"image"+i+"\" src=\"http://graph.facebook.com/" + fb.from.id + "/picture\"/>";
}
Нет проблем.
Однако позже на графике у меня будет:
"id": "11111111111_2222222222",
"to": {
"data": [
{
"name": "Some Name",
"category": "Non-profit organization",
"id": "11222131212211"
И мне нужно взять этот идентификатор, но я попробовал:
alert(fb.to.data.id);
ничего не получил.
Если я это сделаю: alert(fb.to)
Я получил "undefined".
Кто-нибудь имел такие проблемы или подобные. Как вы можете заметить, я совсем не разбираюсь в вопросах программирования, однако я приложу все усилия, чтобы решить эту проблему.
1) Как я могу отобразить изображение профиля во втором случае?
2) Как я могу сказать: используйте fb.from.id только тогда, когда на графике это есть.
О 2), обратите внимание, что если я прокомментирую строку:
//html += "<img id=\"image"+i+"\" src=\"http://graph.facebook.com/" + fb.from.id + "/picture\"/>";
изображения не будут отображаться, и вся информация о публикации (кроме изображения профиля) будет отображаться в окне просмотра.
Если я имею дело только с первой частью этого графика (с "from:"), я получаю картинку для этого поста.
ТАК, проблема, действительно, должна быть во второй части графика. Тот, у которого я не могу получить удостоверение личности "to:".
Я также пытался избежать рендеринга изображения во втором случае, но, по крайней мере, запустил первый. Не повезло вообще.
if (fb.from.id != undefined) {
//do something;
}
Вторая часть графика все еще возвращает ошибку.
Со всем этим беспорядком, который я могу изменить, могу ли я попросить вашей помощи. : S
**
Обновление:
**
Код JS:
function fbFetch(){
var url = "https://graph.facebook.com/125120007543580/feed&callback=?&limit=2";
var i = 0;
//Use jQuery getJSON method to fetch the data from the url and then create our unordered list with the relevant data.
$.getJSON(url,function(json){
var html = "<div id=\"faceWall\">";
//loop through and within data array's retrieve the message variable.
$.each(json.data,function(i,fb){
var idTotal = fb.id;
var ids = idTotal.split("_");
var href = "http://www.facebook.com/"+ids[0]+"/posts/"+ids[1];
var msg = fb.message;
//adicionado
if (msg == undefined) {
msg = 'Cick here to see the post title';
} else if (msg.length > 150) {
msg = msg.substr(0,200)+"...";
}
//ISSUE HERE. IF I COMMENT THIS LINE ALL GOES WELL BUT NO PROFILE PICTURES ARE DISPLAYED.
html += "<img id=\"imagem"+i+"\" src=\"http://graph.facebook.com/" + fb.from.id + "/picture\"/>";
html += "<div id=\"textoFaceWall\">";
html += "<p id=\"msg"+i+"\">";
//adicionado fb.name em vez de fb.from.name:
if (fb.name == undefined) {
html += "<a href=\""+href+"\" target=\"_blank\">" + fb.from.name + "</a> - " + msg + "</p>";
} else {
html += "<a href=\""+href+"\" target=\"_blank\">" + fb.name + "</a> - " + msg + "</p>";
}
html += "<p class=\"dataPostWall\" id=\"data"+i+"\">"+ dataFinal + "</p> ";
html += "</p>";
html += "</div>";
html += "<img class=\"linhaHomePageCanais\" src=\""+baseUrl+"/lib/img/linhaWall.png\" alt=\"linha wall\"/>";
});
html += "</div>";
$("#coluna2").append(html);
});
};
fbFetch();
И часть графика:
({
"data": [
{
"id": "125120007543580_150880001634837",
"from": {
"name": "Some Name",
"category": "Non-profit organization",
"id": "125120007543580"
},
{
"id": "125120007543580_111122368963254",
"to": {
"data": [
{
"name": "Some Name",
"category": "Non-profit organization",
"id": "125120007543580"
}
]
},
Мне нужно отобразить профиль из fb.to.data.id,
Однако теперь я замечаю, что данные имеют [ вместо {, и это может означать, что для доступа к id мне нужно использовать другой синтаксис, возможно?