开发者吐槽:珍爱生命,请远离人人网开放平台!

创见2012-12-03 10:23:09

本文作者为第三方应用开发者王卓群(weibo),他在开发应用的时候发现了人人网开放平台的一些问题,到底是什么让他对人人开放如此愤怒?

最近一段时间我都在利用业余时间折腾一些网站和应用,为了让用户使用现有的社交帐号登录,我开始研究国内各大网站的开放平台,其中包括新浪微博、人人网、QQ 和豆瓣网。在使用人人网开放平台的过程中,从开发程序到提交审核,每一步都充满了痛苦和不适,我甚至有点怀疑它是人人网的工程师用来折磨同行的工具

如果你没有耐心看比较长的文章,或者是遇到了人人网开放平台相关问题之后通过搜索到了这里,那么我长话短说:请放弃人人网开放平台,它不值得你为它投入的每一分钟。

接下来我会列举出我所了解的人人网开放平台的缺陷。我相信,最后就算是仅仅因为同情我的痛苦经历你也会毫不犹豫地放弃它。

1. API 设计糟糕

对于一个开放平台来说,API 是最关键的部分。它应该设计得易于使用和调试,这样开发者才能很快地学习如何使用相应的 API 来获取需要的数据,这对于开放平台来说是一个起码的要求。人人网开放平台是如何做的呢?首先,它简单粗暴地明确规定:

所有的人人网(http://renren.com) 开放平台API都是通过HTTP POST向人人网开放平台REST API服务器(http://api.renren.com/restserver.do) 发送请求来实现的。

一般来说,「读取」而非「写入」的操作只需要使用 GET 方式来请求,这样很方便调试。有时候我们不太相信文档中给出的数据格式,需要直接请求 API 来拿到一些数据样本,例如,豆瓣获取用户信息的 API 地址为:api.douban.com/v2/user/:name ,那么我可以很简单地在浏览器中直接输入 http://api.douban.com/v2/user/1000001 来拿到相应的数据。而如果使用 POST 方式,那么我就必须写一段代码或者借助工具来模拟 POST 请求,可能还会遇到很多恼人的小问题。

另外,在用户认证的时候,虽然人人网现在采用了 OAuth 2.0 作为认证方式,但还是必须要提供一个 OAuth 1.0 才需要的签名,而且计算方法非常复杂。我猜想他们可能是为了兼容老的接口才想出了这种丑陋的设计。曾经我为了计算这个签名反复核对自己的代码,但总是出现一些莫名其妙的错误,而且通过错误信息无法找到解决办法。

人人网开放平台的 API 还有很多其它各式各样的问题,比如参数描述很不明确、默认返回数据的格式是 XML 而不是 JSON 等。一个网站既然要做开放平台,它就应该做出为开发者服务的姿态,这样才会有开发者愿意为它贡献力量,大家一起打造一个良好的生态环境。反之,如果连 API 这种最基本的「服务」都做不好,谁会愿意来光顾呢?

2. 审核混乱,没有有效的投诉渠道

在人人网开放平台提交应用审核之后,他们会通过站内信的方式通知你审核结果。如果有问题你不可以直接回复这条站内信,只能去他们的问答系统上提问,而且他们大多只会回复你一次,之后就懒得理你了。

之前我做猜电影的时候,提交审核没有通过,理由如下:

问题:点击左上角的登陆,进入登陆页面,用人人账号登陆后,连接人人网后点击进入,显示“We're sorry, but something went wrong.” 如图:

首先,登录按钮并不在左上角,而是在右上角。其次,经过我自己和朋友的测试,完全没有发现信中提到的问题。后来我去他们的问答系统提问,得到的答复是:

请联系审核负责人ruifang.guo@renren-inc.com。提供APPid。如图:

然后我又跑去给这个负责人发邮件,没有得到回复。隔了一天我又发了一封,还是没有得到回复。然后我又去问答系统中留言,甚至还尝试回复了一下审核站内信,也一直都没有得到任何姓形式的回应。无奈之下我只好在上线之前取消了对人人网的支持。

在我身上发生的小事只是众多案例中的一个,如果你去人人网的问答系统里面看几个提问,就会发现得不到回复的开发者多如牛毛,也有开发者直接在回复中愤怒地表示取消对人人网的支持。如图:

尽管这里只提到了人人网开放平台的两个问题,但如果你曾经做过第三方平台的程序开发,就会清楚地知道绝大部分的时间和精力都会花费在 API 和审核这两个方面。这两个部分如果做得好,开发者就不会觉得自己在依赖「第三方」的东西;而人人网开放平台给人的感觉就是开发者的命运完全被他们玩弄于股掌之中。

鉴于以上种种原因,建议所有的开发者都放弃人人网开放平台。它除了浪费你的时间、严重降低开发效率之外,还很有可能勾起你去医院看病和国家公务机关办事的痛苦回忆。另外,大部分人人网的用户都会同时拥有微博或者豆瓣帐户,放弃人人网开放平台并不会有太大损失。我们的日常生活环境已经足够恶劣,随时都要面对各种臭脸,不需要再多人人网开放平台一个。

如果你是互联网公司的管理人员,那么也请不要让你们的工程师去做人人网开放平台相关的东西。你们的工程师会把很多时间浪费在人人网开放平台上,而这段时间他们本可以做出更多有价值的东西。支持人人网开放平台会增加你们的人力成本,并且会让你们的工程师心情恶劣,进而导致效率严重下降和成就感缺失,对整个项目都是灾难。

既然人人网开放平台做得那么烂,那么有什么其它比较好的选择呢?就我的个人经验而言,推荐使用新浪微博开放平台和豆瓣网开放平台,这两个开放平台做得都很不错,而且审核速度和问题响应速度都很快,新浪微博更是把很多东西都整合进了应用管理后台。例如,原来 API 调用频次的申请需要发送邮件,而现在只需要在后台中直接点击申请,方便了许多。

豆瓣开放平台的应用管理界面比较简陋,但是它需要的东西比较少,不会要求应用截图等资料,审核速度也很快。豆瓣开放平台让我非常喜欢的一点是:在提交审核之前它对你的 callback 没有什么限制,这大大方便了程序开发,因为开发阶段我更倾向于在本机使用 localhost 调试而不是真正的域名。另外稍微提一下,在开发过程中因为使用到了豆瓣工作人员 liluo 开发的 omniauth gem, 每次更新他还会提醒我一下,对我很有帮助。

珍爱生命,远离人人网开放平台。欢迎留言补充人人网开放平台的其它问题。如果有任何疑问,也欢迎留言,我会不遗余力地耐心劝说对人人网开放平台还抱有幻想的人,用一盆一盆的冷水浇熄他们心中残留的希望的小火花 ^_^

你可能感兴趣的文章