在我的应用程序中,我允许用户通过 oauth 连接他们的 Facebook 帐户,以便通过我们的界面发布。我们支持页面帐户和仅管理页面的常规帐户。
我们还检查 opengraph API 调用的结果,以获取指向其个人资料或页面的有效 URL。我们使用的主要端点是https://graph.facebook.com/me(带有 oauth 凭据)。对于某些仅页面帐户,返回的对象具有一个“链接”值,当输入到 Web 浏览器时,该值是 404。
我见过的不良 URL 分为两种不同的情况:
URL 可以是 'www.facebook.com/{page_id}' 的形式,在某些页面上是 404,但在其他页面上则不是。
URL 可以是 'www.facebook.com/profile.php?id={user_id}' 的形式,通常是 404。
我见过的唯一适用于所有帐户的 URL 格式是 www.facebook.com/profile.php?id={page_id}。在第一种情况下,我们检测到“链接”字段的格式不正确(使用 profile.php?id=...),并构造了一个具有正确结构的 URL,并且它可以工作。
我正在考虑添加的下一个启发式方法是查看 URL 的格式是否正确......但使用 {user_id} 作为 profile.php 的 id 参数,并使用 {page_id} 构造 URL。显然,这越来越荒谬了。
那么,有没有一种好方法可以知道一个帐户是否会返回一个无效的链接?这是 API 中的错误吗?给定开放图形 API 上的用户,获取指向其个人资料/页面的有效链接的最可靠方法是什么?