-3

我是新手,尽管我设法完成了工作,但这个问题超出了我的能力范围。

与 Facebook 相关的问题

https://graph.facebook.com/211255505590483/albums?fields=id

上面的链接显示了 Facebook 页面的专辑列表。我想提取所有“id”并将它们放在下拉列表中。例如: <option value="123456789">123456789</option>


此部分在@Mathieu 回复后添加以消除混淆:

问题:我需要帮助来仅提取可用于下拉列表的专辑 ID。我已经尝试过“preg_match”,但我无法隔离并仅获取专辑 ID。我将整个内容作为单行或换行符获取,其中还包括“created_time”部分。


我已经有一个 PHP 脚本,当我直接将相册“id”放入其中时,它可以显示相册(Facebook 页面的)的所有照片。

我的“计划一”是每当访问者访问我的网站时,我的页面都会获取专辑“id”列表并且可以查看照片。

我的“计划二”是页面可以使用 cron 每天一次获取专辑“id”列表并存储在数据库中,这将防止多次调用 Facebook。

我觉得既然通过上面的链接可以得到专辑“id”的列表,那么就不需要AccessToken、Secret等了。

4

1 回答 1

1

完毕

此脚本仅适用于 Facebook 页面以显示所有专辑。您需要一个单独的脚本来显示任何特定相册的所有照片。

编辑:我已经改进了解决方案。该脚本现在在一个下拉框中提供专辑 ID、专辑名称和专辑创建日期。

<?php

$facebook_page_owner = "211255505590483";

$string = file_get_contents('https://graph.facebook.com/'.$facebook_page_owner.'/albums?fields=id,name,cover_photo');
$jdata = json_decode($string);
$albumcount = count($jdata->data);

echo "There are ".$albumcount." Albums in this Facebook page.<br /><br />";

echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";

echo "<select id=\"facebookalbumid\" name=\"facebookalbumid\">";

    $facebookalbumid = $_POST['facebookalbumid'];
    $i=0;
    while($i<=($albumcount-1))
        {
        $selected = ($jdata->data[$i]->id == $facebookalbumid) ? "selected='selected'" : "";
            if ($facebookalbumid == "") {
            $facebookalbumid = $jdata->data[$i]->id;
            }
        echo "<option value=\"".$jdata->data[$i]->id."\" $selected>".$jdata->data[$i]->id."</option>";
        $i++;
    }

echo "</select>";

echo " <input type=\"submit\" value=\"View Album\"></form><br />";


$string2 = file_get_contents('https://graph.facebook.com/fql?q=SELECT%20name,%20created%20FROM%20album%20WHERE%20owner='.$facebook_page_owner.'%20and%20object_id='.$facebookalbumid.'');
$adata = json_decode($string2);
$facebookalbumname = $adata->data[0]->name;
$albumdate = $adata->data[0]->created;
$facebookalbumdate = date("d-M-Y", $albumdate);

echo $facebookalbumname."<br />";
echo $facebookalbumdate."<br />";

?>
于 2012-08-11T01:28:37.660 回答