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