如何使用 Graph API 在 Facebook 动态消息中获取“相册中新增的照片”。

4

我正在使用以下方法获取Facebook新闻动态:

新闻动态:https://graph.facebook.com/me/home?access_token=MyAccessToken

我可以获取所有的新闻动态对象。但是在新闻动态对象中,如果类型为“照片”,我只能获取最后添加的照片URL(如果用户向该相册添加了一些照片)。

但是,如何获取像“Jack向MyApp Photos相册添加了3张新照片”这样的新闻动态呢?

如果用户向一个相册添加了任何照片,我想要获取该相册中的3张照片。我已经进行了很多谷歌搜索,但没有找到解决方案。

请帮助我,提前致谢。

1个回答

3

好的,这有点取巧,但我看不到其他方法。在你的新闻订阅中,你会看到一条类似于以下内容的项目:

{
         "id": "123456789_3453453455345334",
         "from": {
            "name": "A Friend",
            "id": "123456789"
         },
         "to": {
            "data": [
               {
                  "name": "A Friend",
                  "id": "123456789"
               }
            ]
         },
         "picture": "PICTURE_URL",
         "link": "http://www.facebook.com/photo.php?fbid=3453453455345334&set=a.10151233554845639.123456.123456789&type=1",
         "name": "Mobile Uploads",
         "caption": "10 new photos",
         "icon": "ICON_URL",
         "type": "photo",
         "object_id": "3453453455345334",
         "application": {
            "name": "Facebook for iPhone",
            "id": "6628568379"
         },
         "created_time": "2000-06-29T19:56:50+0000",
         "updated_time": "2001-06-29T19:56:50+0000"
      },

关键在于链接URL中包含的内容:

set=a.10151233554845639.123456.123456789

在a后面的第一个数字似乎是专辑ID。因此,我们可以通过查询来获取专辑中的照片:

https://graph.facebook.com/10151233554845345/photos?access_token=ACCESS_TOKEN

如果您分享的照片已经存在于Facebook上,则会出现一个名为“属性”的额外属性:
"properties": [
            {
               "name": "By",
               "text": "A Friend",
               "href": "http://www.facebook.com/a.friend"
            }
         ],

如果您在您的墙上分享一张照片,这实际上是一个上传操作,因此将不包括“properties”属性。

谢谢您的回答...但是,如果用户只是在他们的个人资料中分享一张照片,我们将只会得到这样的动态。但是,当我们向相册添加新照片时(不发布帖子),"Jack added 3 new photos to the album MyApp Photos." 的通知会出现在新闻动态中。那么我们如何确定这个动态是由 Facebook 生成的呢? - S.P.
以上摘录来自/home/频道。您想要/feed/频道的结果吗?我不确定您所说的“Facebook生成”,以上摘录确实是由Facebook生成的。 - BeRecursive
当我将照片添加到我的相册或创建新相册时,该事件将自动出现在新闻动态中。当我们分享照片时,另一个新闻动态也会被创建。我们得到了两种类型为“照片”的新闻动态。我的问题是如何区分这两种类型的新闻动态? - S.P.
请检查我的编辑后的回复 - 我认为这就是你的意思。我刚刚浏览了四个流程:上传新相册、上传相册中的新照片、分享现有照片和分享新照片。如果您分享的是新照片,那么实际上是上传到墙上的照片。因此,唯一的区别方式是如果您分享的是现有照片,那么请参见答案。 - BeRecursive
@BeRecursive 是的,这是区分不同“照片”新闻提要的唯一方法。希望Facebook能够记录这个问题/问题。感谢您的答案。我已经思考了这个问题2天了...最终找到了解决方案...再次感谢。 - S.P.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接