1

是否可以在另一个网站内显示使用 facebook 应用程序制作的图像(由他们上传到用户的 facebook 画廊)?

4

2 回答 2

1

是的,这是可能的,但用户必须授权您访问他们的照片。

您可以通过获得扩展权限来做到这一点:

$uid = $facebook->getUser();  

$url = $facebook->getLoginUrl(array(  
'req_perms' => 'user_photos' ));  
于 2012-04-23T12:28:37.633 回答
1

您可以检索当前用户使用另一个应用程序上传的图像。当前用户需要使用访问令牌登录,您需要

read_stream
user_photos

权限。

您可以使用 FQL 查询和一些客户端解析来检索照片的 url:

首先,查询 FQL 流表以获取字段“app_id”= 其他应用程序 ID 的流帖子附件。

SELECT attachment FROM stream WHERE source_id=me() AND app_id=OTHER_APP_ID

这会检索使用其他应用完成的所有帖子的附件。

查询可能会进一步缩小,如下所示,但我没有数据集来测试它:

SELECT attachment FROM stream WHERE source_id=me() AND app_id=OTHER_APP_ID AND type=247

其中 247 表示照片。它可以为您节省一些客户端工作(这两个 AND 看起来很骇人,也许有人可以提出更好的说法......)。

得到响应后,解析 JSON。每个“附件”都有一个名为“媒体”的字段,它是一个数组。对于每个数组项,检查 type="photo"。如果是,“src”字段将包含一个指向上传照片的小版本的 url 链接。

为了说明,这里是示例 JSON 响应的开头:

"attachment": {
    "media": [
      {
        "type": "photo", 
        "src": "https://...._s.jpg", 
         //etc

JSON 响应还包含指向其他大小的链接。

有关流表的更多信息,请参阅Facebook 开发者文档

于 2012-04-26T16:33:12.813 回答