Работа с Facebook JSON с AJAX - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь получить подробную информацию о событии в facebook, для которого пользователь вводит URL.

Обычно пользователь вводит URL для события, например.https://www.facebook.com/event.php?eid=102036779889416 Тогда результирующая информация в формате JSON будет присваиваться переменным и передаваться в соответствующие значения формы, это просто функция автоматического заполнения, чтобы упростить на моем сайте работу.

Теперь у меня естьФорма для передачи URL-адреса в файл, я использую getjson

$.getJSON("getevent.php?event="+event,function(data)

Но я не знаю, что делать с возвратом, так как в следующем примере json отформатирован так:

{"posts": 
[
{ 
"title":"9lessons | Programming Blog", 
"url":"http://9lessons.blogspot.com" 
}, 
{ 
"title":"jQuery and Ajax Demos Pard - 3", 
"url":"jquery-and-ajax-best-demos-part-3.html"
}, 
]
}

И может быть выведен, когда он вернется, используя это:

<script type="text/javascript">
$(function() 
{
$(document).ready(function()
{
$.getJSON("data.js",function(data)
{
$.each(data.posts, function(i,data)
{
var div_data =
"<div ><a href='"+data.url+"'>"+data.title+"</a></div>";
$(div_data).appendTo("#9lessonsLinks");
});
}
);
return false;
});
});
</script>

Однако, возвращенный JSON Facebook выглядит так:

{
   "id": "188892631122084",
   "owner": {
      "name": "Gerard Alonso",
      "id": "742700474"
   },
   "name": "M.E.T.H.O.D. 11.6.2011",
   "description": "Yo! \n\nOld skool hip hop and other assorted jams at the Bodega. \n\nAll day jam with barbecue by Homemade, graffiti by Montana, Nottingham's best hip hop DJs and good vibes all round.\n\n\u00a33 entry all day and night, separate \u00a35 charge for Don't Flop rap battles upstairs http://www.facebook.com/event.php?eid=165044166891331.\n\n\nDJs line-up:\n\nTHE ELEMENTZ\nSQUIGZ\nBEATMASTER BILL\nSYNIC\nROOT ONE\nILLICIT & DESCRY\nADAM P\n+ more\n\n\nDuring the day:\n\n- Dont Flop rap battles upstairs (not included on the \u00a33 ticket price)\n- Mimm store >> http://tinyurl.com/3n8qltc\n- Jamaican BBQ (Homemade)\n- Funk and sunny hip hop in the downstairs bar\n\nIn the evening:\n\n- Old skool hip hop music upstairs along with plenty of mc's getting up in the mic\n- Drinks deals TBC\n- BBQ all day and night\n\n\nAny Mc's, dj's, breakers, graffiti artist  get in touch. \n\nPeace, love and hip hop.",
   "start_time": "2011-06-11T14:00:00",
   "end_time": "2011-06-12T03:30:00",
   "location": "The Bodega Social",
   "privacy": "OPEN",
   "updated_time": "2011-06-05T21:45:18+0000"
}

И как выЯ вижу, что он не имеет верхнего уровня, эквивалентного «сообщениям», которые я могу использовать, так что я немного озадачен.Также я не уверен, как вывести его на файл, так как у меня есть это в php-файле, на который передается URL:

$url = $_GET['event'];

parse_str( parse_url( $url, PHP_URL_QUERY ) );
$id = $eid;


$url = 'https://graph.facebook.com/'.$id;

$json = file_get_contents($url,0,null,null);
$json_output = json_encode($json, false);


print_r($json_output);

Что в любом случае кажется неправильным, так как вывод полон обратной косой черты передкаждая цитата

Я знаю, что это довольно просто, но я просто не могу понять это.Что я хочу сделать, так это назначить каждую категорию переменной, чтобы что-то с ней делать, но сейчас я просто согласен на ее вывод в первую очередь.Я нахожу AJAX настолько сложным, потому что кажется, что есть примерно 10 способов сделать то же самое.

Редактировать: я понял, что мне не нужен JSONdecode и просто вывел $ json.Firebug видит, что JSON генерируется нормально, но после добавления этого в AJAX ничего не происходит:

$.getJSON("getevent.php?event="+event,function(data)
{
var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('#arrData');
}
);
return false;

Так что я даже не знаю, что я сейчас пытаюсь исправить, насколько я могу разобрать, я сделалчто руководство говорит мне, и JSON правильный?

Спасибо

1 Ответ

0 голосов
/ 10 июня 2011

Я думаю, что JSON, который вы хотите использовать, предназначен для списка сообщений.Второй фрагмент JSON выглядит как правильный (то есть объект события).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...