1

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

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

谢谢

4

2 回答 2

0

只要您的相册和其中的照片是公开的,您就不必获得 OAuth 令牌(至少现在是这样)。

如果您在浏览到https://graph.facebook.com/ALBUM_ID/photosALBUM_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'] );
}

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

于 2012-05-18T18:27:47.223 回答
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 天内也不会过期。

祝你好运

于 2012-05-19T06:24:02.617 回答