使用令牌从网络应用中访问网页的相册?

时间:2013-03-17 21:31:21

标签: php facebook-graph-api sdk token

我是第一次在客户端网站上使用Facebook的PHP sdk,我有点困惑。我正试图从客户的Facebook页面获取一些数据并将其注入他们的网站。我想要获得的一个对象是照片库的客户相册列表。

<?php 
$albums = $Facebook->api("/169639127532/albums?fields=id,name,cover_photo");
$photos = array();
$queries = array();
foreach($albums['data'] as $album) {
    if(array_key_exists("cover_photo", $album)) 
    $queries[] = array("method" => "GET", "relative_url" =>     "/".$album['cover_photo']."?fields=source");
}

$rawPhotos = $Facebook->api('?batch='.json_encode($queries), 'POST');
foreach($rawPhotos as $photo) {
    //print_r(json_decode($photo['body'])); echo "<br /><br />";
    $photo = json_decode($photo['body']);
    $photos[$photo->id] = $photo->source;
}

如您所见,即时获取相册列表,然后使用批量请求获取这些相册的所有封面照片。

使用我的客户端页面ID,这不起作用,不返回任何内容。但是,如果我使用其他页面的ID,则可以使用。

所以我把它归结为授权。我注意到,如果我使用带有访问令牌的Graph API资源管理器,我可以获取照片。因此,我复制了我使用API​​资源管理器生成的令牌,并使用以下函数在网站上全局设置它,这是有效的。

$Facebook->setAccessToken($token)

显然,这不是一个非常强大的解决方案,因为令牌仅存在有限的时间。我尝试使用带有应用程序详细信息的/ oauth / access_token API调用获取应用程序的令牌,并成功获得令牌。如果我使用它作为令牌,我将无法再使用图形资源管理器中的临时令牌查看数据。

我不希望用户只是为了查看网站上的照片库而必须登录。

如何获取允许我这样做的应用令牌?

感谢。

0 个答案:

没有答案