Facebook Stream.Get - 如何访问数组中的数据?

时间:2010-04-22 21:32:12

标签: php api facebook get stream

stream.get上,我尝试

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

它返回URL,但是,在“type”所在的相同数组范围内(返回string:video等),尝试$feeds["posts"][$i]["attachment"]["type"]根本不返回任何内容!

这是一个通过PHP var_dumphttp://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 个答案:

答案 0 :(得分:1)

好吧,一旦数据返回给您,它就不再受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"]应该有用。