有没有办法使用Graph API从Facebook检索公共相册中的照片?是否可以不提供访问令牌?如果没有,是否可以不使用在60天后到期的访问令牌(似乎是默认的到期时间)。
如果我在网站上嵌入Facebook相册,我不想每60天重新授权或获取一个新的访问令牌,并重新发布我的网站。
由于
答案 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天内也不会过期。
祝你好运