我有一个要求下载和存储用户的脸书图片,因为我们正在使用它在我们的系统中,就像他们的用户帐户图片,就像许多其他应用程序一样。
问题是,我不想每次得到活动会话时都覆盖它。我想要做的是以某种方式检查用户自上次检索以来是否更新了他们的配置文件图片。如果他们有,那么显然我想更新我在我们的系统中的一个,以匹配当前的一个在Facebook上。
我的问题
是否有一个更新的时间戳或什么东西,我可以看到什么时候,用户的脸书配置文件图片被改变?
有更好的办法吗?
更新
继续@Nachi的建议,我向“/me/图片”图形端点发出了Graph请求,并且可以成功地返回用户的概要文件映像,但是它不会在标题中返回结束标记。请看下面的代码。
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。
发布于 2014-10-30 16:25:17
您可以使用Realtime获取任何更改,它支持检查配置文件图片:https://developers.facebook.com/docs/graph-api/real-time-updates/v2.1
这比定期自己检查要好得多,因为Facebook会把更改推给你,而你的API限制不会有任何问题。在我的经验中,你会在30秒内收到通知,最多30秒,大多数情况下速度要快得多。
发布于 2014-10-30 15:52:41
是的,Facebook支持HTTP ETags。当您调用Graph时,您可以提供一个标头参数,其中包含上次调用的值的散列。如果新值不变,服务器将返回一个304 Not Modified。
https://stackoverflow.com/questions/26656651
复制相似问题