php - 如何使用 Facebook graph API 检索上传到粉丝页面墙上的粉丝照片?

标签 php html facebook facebook-graph-api facebook-fql

我正在使用 PHP 和 Facebook 图形 API 创建一个外部照片库。它从我们的 Facebook 粉丝页面上的相册中提取缩略图和大图像。

一切正常,除了我只能检索管理员发布到我们页面的照片。 (graph.facebook.com/myalbumid/photos) 有没有办法使用 graph api 加载粉丝上传的公开照片?

我想从“Photos from”相册中检索图片,但尝试获取图形查询的 ID 与其他相册不同......它看起来像这样:http://www.facebook .com/media/set/?set=o.116860675007039

另一个注意事项:我接近检索此数据的唯一方法是使用“提要”选项。即:graph.facebook.com/pageid/feed

编辑: 这是我所能得到的——它可以工作,但有下面所述的某些问题。也许有人可以对此进行扩展,或者提供更好的解决方案。 (使用 FB PHP SDK)

<?php
require_once ('config.php');
// get all photos for album
$photos = $facebook->api("/YourID/tagged");
$maxitem =10;
$count = 0;
foreach($photos['data'] as $photo) {
    if ($photo['type'] == "photo"):
        echo "<img src='{$photo['picture']}' />", "<br />";
    endif;
    $count+= 1;
    if ($count >= "$maxitem") break;
}
?>

问题:

1) 由于我不知道图形查询特定“类型”标签的方法,我不得不运行条件语句来显示照片。

2) 您不能有效地使用“?limit=#”,因为正如我所说,“标记”查询包含所有类型(照片、视频和状态)。因此,如果您要访问照片库并希望避免使用 ?limit 运行整个查询,您将丢失图像。

3) “标记”查询中显示的唯一内容来自非页面管理员的人员。这不是世界末日,但我不明白为什么 Facebook 不允许你自己出现在这些数据中,只要你“以你自己的身份”而不是以页面的形式发布。

最佳答案

您需要检索所有相册,然后获取所有照片。这可以通过使用 FQL 轻松完成:

SELECT pid,owner,src_small,src_big 
FROM photo 
WHERE aid IN (
    SELECT aid 
    FROM album 
    WHERE owner = your_page_id
)

编辑:
您还需要查询流表以获取墙贴,然后检查您是否有附件和附件类型:

SELECT attachment
FROM stream 
WHERE source_id = 116860675007039

结果:

[
  {
    "attachment": {
      "media": [
        {
          "href": "http://www.facebook.com/photo.php?fbid=1801693052786&set=o.116860675007039",
          "alt": "test",
          "type": "photo",
          "src": "http://photos-f.ak.fbcdn.net/hphotos-ak-snc6/185861_1801693052786_1553635161_1863491_4978966_s.jpg",
          "photo": {
            "aid": "6672812206410774346",
            "pid": "6672812206412558147",
            "fbid": 1801693052786,
            "owner": 1553635161,
            "index": 11,
            "width": 246,
            "height": 198
          }
        }
      ],
      "name": "",
      "caption": "",
      "description": "",
      "properties": [],
      "icon": "http://b.static.ak.fbcdn.net/rsrc.php/v1/yz/r/StEh3RhPvjk.gif",
      "fb_object_type": "photo",
      "fb_object_id": "6672812206412558147"
    }
  },
  {
    "attachment": {
      "description": ""
    }
  },
...etc
]

关于php - 如何使用 Facebook graph API 检索上传到粉丝页面墙上的粉丝照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083464/

相关文章:

javascript - 使用类方法在 HTML5 Canvas 上绘图 : scope problems (JS, ES6)

php - 更新脚本随机停止

php - 服务器移动后,旧 Joomla 站点在浏览器中返回 bool(false)

javascript - 403 - 禁止访问 : error when calling view file in Yii

php - 使用 AJAX 调用 PHP(通过 MYSQL)并填充引导模式

javascript - 要显示的 Youtube 播放器选项

jquery - 高度 100%,多列不工作

javascript - 使用 Javascript 和 HTML 表单向 Facebook 提交图像

facebook - 使用 Facebook 的 Open Graph 协议(protocol),是否允许使用多个缩略图?

javascript - 使用javascript在ios上通过 native 应用程序或网络浏览器显示facebook登录