Facebook专辑和照片无法获得所有必要的许可(GRAPH API)

Jak*_*ieł 3 java permissions android facebook-graph-api

在我的Android应用程序中,我下载了用户指定朋友的专辑列表.

我有如下许可:friends_about_me,friends_photo_video_tags,friends_photos,user_photos.

对于一些朋友,它工作得很好,我可以下载完整列表和所有照片.但对某些人来说,它返回空数组.这是朋友隐私政策的情况还是FB bug?

如果我尝试通过FB页面或通过FB Android应用程序查看此朋友相册,它工作正常.

编辑:我确实从FB页面的URL获取用户相册ID并将其粘贴到GRAPH API资源管理器,它返回false给我.

问题是:如何获取专辑列表和专辑照片?

jch*_*hes 10

隐私设置

(目前)Account > Privacy settings > Apps and Websites "Edit your settings",用户可以通过他们的朋友设置您的应用可以访问的信息,无论他们的朋友授予应用的权限如何.

可通过您的朋友访问信息

如果您尝试查看相册的人取消选中"我的照片",则他们必须直接授予应用程序权限(如下所述).默认情况下会进行检查,您的应用可以访问用户的照片.如果未选中此框,则您的应用无法在没有添加应用并为您提供访问权限的情况下获取照片.

随着正在推出到Facebook的隐私设置的更改,这些设置可能会被移动,但希望功能仍然存在.

更新 8/30 - 我的Facebook帐户刚刚启用了上面提到的更改.对话框是相同的,只是在不同的标签下:Account > Privacy Settings > Apps and Websites > How people bring your info to apps they use "Edit settings".一些文本已更新,一些选项略有不同,但其他设置是相同的.

测试

像这样配置两个帐户:

帐户1:

  1. 两组为朋友,其中一组称为"受限制"
  2. 相册("个人照片"除外)设置为"仅限朋友"; 除了限制组'可以看到他们.个人资料照片仅设为好友.
  3. "我的照片"未经检查"通过朋友访问信息"
  4. 应用程序的非常宽松的权限(friends_about_me, friends_photo_video_tags, friends_photos, user_photos以及其他)

帐户2:

  1. 账户1的朋友
  2. 授予应用程序相同的权限

通过切换隐私控制(检查/取消选中相关复选框,在帐户1上授予/撤消应用程序权限,以及在帐户1上添加/删除帐户2到"受限制"组)并尝试访问该帐户的相册,会发现My Photos帐户1中的复选框:

  • 经过
    • 任何拥有friends_photos帐户2使用权限的应用都可以看到帐户2可见的任何照片
  • 未选中
    • 帐户1的朋友使用的应用程序无法访问任何照片,除非......
    • 除非帐户1添加了您的应用并授予了user_photos权限.在这种情况下,该应用可以访问帐户2可见的任何相册.

因此,/<userid>/albums当帐户2 不在 "受限制"组中帐户1启用了具有该user_photos权限的应用程序时,帐户2可以访问帐户1的相册()并且未选中"我的照片"框的唯一方式.当帐户2 受到限制时,它可以看到的唯一相册(如预期的那样)是"个人资料图片".当帐户1删除应用程序或在不授予user_photos权限的情况下启用它时,/albums连接将返回一个空数组.

因此,虽然看起来像是一个错误,你得到一个空数组,但它实际上是完全确定性和预期的行为.最重要的是,从用户隐私的角度来看,Facebook让用户可以控制此设置.

那你怎么得到他们的照片?

你没有.或者,你不应该.如果他们花时间禁止通过朋友访问他们的照片,您应该尊重他们的隐私.

也就是说,技术上仍然可以作为他们的朋友之一登录到facebook.com,并查看他们与朋友分享的照片,但不能与朋友的应用程序分享.从理论上讲,你可以编写一个自动执行这样一个任务的网络爬虫,虽然它违反了facebook 的服务条款,你这样做会是一个坏人:

[3.2]未经我们许可,您不得使用自动化方式(如收获机器人,机器人,蜘蛛或刮刀)收集用户的内容或信息,或以其他方式访问Facebook.