如果我正在使用他们的 API,我该如何反映某些外部来源(例如:Facebook、LinkedIn 等)的用户数据的变化?

How do I reflect changes in user data of some external source (eg: Facebook, LinkedIn etc) if I'm using their API?

所以我使用 LinkedIn 的 API 作为用户登录我的 Android 应用程序的一种方式,但我认为这个问题可以推广到任何社交网络的 API 并且也不是特定于 Android 的。无论如何...

当我调用 LinkedIn 的 API 时,我会在他们登录后获得一些用户数据——特别是他们的姓名、电子邮件、技能、个人资料描述等。我知道当用户在 LinkedIn 的网站上编辑他的个人资料(例如,添加一项新技能)。

现在,我希望这些更改尽快反映在我的应用程序中。我所能想到的就是每次用户 returns 访问应用程序时简单地调用 API,获取数据并将其替换为我从上次调用中存储的任何内容。

但这似乎有问题,因为对于许多用户来说,他们很可能很少对他们在 LinkedIn 上的个人资料进行任何更改...因此,每次用户打开应用程序时拨打电话似乎是在浪费大量时间。但是,如果我以更长的时间间隔(比如每隔几天)拨打电话,那么我可能无法反映某些人可能做出的任何更改。

所以我想知道是否有任何替代解决方案来进行所有这些调用。诸如 Facebook、Twitter、LinkedIn 和其他社交网络之类的 API 是否有一种方法来通知更改(或者是否有其他具有此功能的库)?

Facebook 确实有符合您要求的内容:https://developers.facebook.com/docs/graph-api/reference/v2.2/app/subscriptions/

您可以选择订阅对用户对象的更新,他们会在发生变化时调用您提供给他们的端点。

据我所知,LinkedIn 不提供类似的功能。但是,我不会过分强调在您打开应用程序时进行此调用。这只是一个检索少量数据的调用。当然,您希望确保应用程序不会在调用失败时加载失败 - 您只是希望这意味着信息未更新。

应用程序是独立的,还是有服务器组件?另一种选择是让服务器代表用户进行此调用。