Facebook-如何请求脱机访问用户照片


Facebook - How to request offline access to user_photos?

这是我当前请求查看电子邮件和用户照片的权限的代码

    'req_perms' => 'email,user_photos',

我想在用户离线时访问用户照片,我似乎记得这是可能的,但也许我错了。不管怎样,如果可能的话,怎么做?

Hyunmin(在注释中)有正确的链接。

作为一个非常快速的总结:

  1. 正常登录用户;您将获得一个访问令牌。这可能是一个短期或长期(60天)令牌-取决于服务器端或客户端(PHP或JS)的登录方法,但不要担心会得到哪种
  2. 如果你担心,请注意:如果你愿意,你也可以检查到期,因为到期是在你获得访问令牌时提供的。但我又跳过了这一步
  3. 每天一次,您可以将代币延长至整整60天。只需调用

    https://graph.facebook.com/oauth/access_token?
    client_id=APP_id&client_secret=APP_secret&grant_type=fb_exchange_token&fb_exchange_token=存在_ACCESS_token

并且您获得了一个访问令牌(可能相同,也可能不同)。只需使用/存储这个新的访问令牌来代替旧的访问令牌。

其实真的很简单——除了跟踪"每天一次"的升级。(现在你可以忽略这一点,如果需要的话可以多次拨打电话——只会稍微放慢速度。)


作为对评论的回应——"你如何调用给你代币的URL?"

你不会重定向用户,因为你需要响应值,所以你需要调用它并处理它

在PHP中,最简单的测试(但不推荐)是使用

$response = file_get_contents($url);

但在生产系统上,您应该使用CURL(因为有些生产系统不允许外部URL使用file_get_contents)。可以在谷歌上搜索CURL示例,也可以在附带的facebookSDK库中使用makeRequest()函数。