Facebook Stream.Get - Как получить доступ к данным в массиве? - PullRequest
0 голосов
/ 23 апреля 2010

На stream.get, я пытаюсь

echo $feeds["posts"][$i]["attachment"]["href"];

Возвращает URL, но в той же области видимости массива, где находится «тип» (который возвращает строку: видео и т. Д.), Попытка $feeds["posts"][$i]["attachment"]["type"] вообще ничего не возвращает!

Вот массив через PHP var_dump: http://pastie.org/930475

Итак, я полагаю, что от тестирования это защищено Facebook? Имеет ли это смысл вообще?

Здесь все заполнено: http://pastie.org/930490,, но не все вложения / носители / типы имеют значения.

Это также странно, потому что я не могу получить доступ через [attachment][media][href] или [attachment][media][type], и если я пытаюсь [attachment][media][0][type] или href, это дает мне ошибку смещения строки.

["attachment"]=> array(8) {
    ["media"]=> array(1) {
        [0]=> array(5) {
            ["href"]=> string(55) "http://www.facebook.com/video/video.php?v=1392999461587"
            ["alt"]=> string(13) "IN THE STUDIO"
            ["type"]=> string(5) "video"

У меня вопрос, это защищено Facebook? Или мы действительно можем получить доступ к этой позиции массива?

1 Ответ

1 голос
/ 23 апреля 2010

Что ж, после того, как данные возвращены вам, они больше не могут быть защищены Facebook. У вас есть полный доступ ко всему в этом результате в виде обычной структуры данных.

Судя по всему, существует несколько href свойств, поэтому вы должны быть осторожны с тем, что вам нужно. $feeds["posts"][$i]["attachment"]["href"] является допустимым элементом для некоторых элементов, но $feeds["posts"][$i]["attachment"]["media"][0]["href"] также является допустимым элементом.

Кажется, что нет элемента $feeds["posts"][$i]["attachment"]["type"], поэтому вы ничего не получаете за этот конкретный предмет. Однако внутри ["attachment"]["media"][0] есть тип, который, вероятно, вам нужен.

Если вы получаете ошибку смещения строки при использовании синтаксиса массива, возможно, вы где-то перепутали элемент. Строки могут быть доступны через синтаксис массива. Например:

$str = "string";
echo $str[1];  //echos 't'

Вы получите предупреждение о смещении, если попытаетесь получить доступ к индексу, который больше строки. В любом случае, судя по выходным данным, $feeds["posts"][$i]["attachment"]["media"][0]["type"] должно работать.

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