首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查用户的Facebook配置文件是否已更新

检查用户的Facebook配置文件是否已更新
EN

Stack Overflow用户
提问于 2014-10-30 15:10:02
回答 2查看 830关注 0票数 4

我有一个要求下载和存储用户的脸书图片,因为我们正在使用它在我们的系统中,就像他们的用户帐户图片,就像许多其他应用程序一样。

问题是,我不想每次得到活动会话时都覆盖它。我想要做的是以某种方式检查用户自上次检索以来是否更新了他们的配置文件图片。如果他们有,那么显然我想更新我在我们的系统中的一个,以匹配当前的一个在Facebook上。

我的问题

是否有一个更新的时间戳或什么东西,我可以看到什么时候,用户的脸书配置文件图片被改变?

有更好的办法吗?

更新

继续@Nachi的建议,我向“/me/图片”图形端点发出了Graph请求,并且可以成功地返回用户的概要文件映像,但是它不会在标题中返回结束标记。请看下面的代码。

代码语言:javascript
复制
Request.newGraphPathRequest(Session.getActiveSession(),"/me/picture",new Request.Callback() {
                @Override
                public void onCompleted(Response response) {
                    Map<String,List<String>> headers = response.getConnection().getHeaderFields();
                    for (Map.Entry<String,List<String>> entry : headers.entrySet()) {
                        Log.d(LOG_TAG,entry.getKey()+": "+entry.getValue().toString());
                    }

                    Log.d(LOG_TAG,response.getRawResponse());
                    Log.d(LOG_TAG,response.getGraphObject().toString());
                }
            }
        ).executeAsync();

更新2

我将图形请求的结束标记更改为/me,这是一个公共配置文件,我成功地获得了一个ETag。

EN

回答 2

Stack Overflow用户

发布于 2014-10-30 16:25:17

您可以使用Realtime获取任何更改,它支持检查配置文件图片:https://developers.facebook.com/docs/graph-api/real-time-updates/v2.1

这比定期自己检查要好得多,因为Facebook会把更改推给你,而你的API限制不会有任何问题。在我的经验中,你会在30秒内收到通知,最多30秒,大多数情况下速度要快得多。

票数 4
EN

Stack Overflow用户

发布于 2014-10-30 15:52:41

是的,Facebook支持HTTP ETags。当您调用Graph时,您可以提供一个标头参数,其中包含上次调用的值的散列。如果新值不变,服务器将返回一个304 Not Modified

这是一个详细的指南

  1. 当您进行图形API调用时,响应头包含ETag,其值是API调用中返回的数据的哈希值。提取这个ETag值并在步骤2中使用.
  2. 下次进行相同的API调用时,包含If-None-Match请求头,其中包含从步骤1中为该API调用提取的ETag值。
  3. 如果数据没有更改,响应状态代码将是304 -而不是修改后的,也不会返回数据。
  4. 如果数据自上次拉动后发生了更改,则将像往常一样使用新的ETag返回数据。提取新的ETag值并用于后续调用。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26656651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档