我是一个新手,虽然我设法完成了工作,但这个问题是我无法企及的。
与脸书相关的问题
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"列表可以通过上面的链接获得,因此不需要访问令牌,秘密等。
完成
此脚本仅适用于显示所有相册的 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 />";
?>