在网站中嵌入Facebook相册

时间:2012-05-18 17:33:49

标签: php facebook api photo

有没有办法使用Graph API从Facebook检索公共相册中的照片?是否可以不提供访问令牌?如果没有,是否可以不使用在60天后到期的访问令牌(似乎是默认的到期时间)。

如果我在网站上嵌入Facebook相册,我不想每60天重新授权或获取一个新的访问令牌,并重新发布我的网站。

由于

2 个答案:

答案 0 :(得分:0)

只要您的相册及其中的照片是公开的,您就不应该获得OAuth令牌(至少目前为止)。

如果您在浏览到https://graph.facebook.com/ALBUM_ID/photos时获得数据,其中ALBUM_ID是您相册的ID,那么您就可以了。

在您的脚本中,您可以执行以下操作:

$fb_data = json_decode( file_get_contents( 'https://graph.facebook.com/ALBUM_ID/photos') );
foreach ($fb_data['images'] as $img) {
    sprintf('<img src="%s" height="%d" width="%d" />', $img['source'], $img['height'], $img['width'] );
}

如果该项目不公开,请创建一个连接器应用程序,您可以使用php SDK将APP_ID和APP_SECRET用作访问令牌。

答案 1 :(得分:0)

无论是公共还是私有,您都需要添加访问令牌,否则它将不会返回数据。

以下是示例代码

$album_id = your album id;
$access_token = 'your token';

$url = "https://graph.facebook.com/{$album_id}/photos?access_token={$access_token}";
$image = json_decode(file_get_contents($url));

foreach($image->data as $img){
echo "<img src='{$img->images[6]->source}' />    ";

}

只需确保在收集令牌时,您需要使用offline_access令牌bcoz,但令牌即将过期,如果您也具有离线访问权限,那么您的令牌将不会过期,即使在60天内也不会过期。

祝你好运