Twitter的狗屎三明治

Twitter今天宣布对第三方API访问直接消息的新细粒度控制:

Beginning today, we’re giving you more control over what information you share with third-party applicationsApps that you use to access your direct messages will ask for your permission againBy the end of the month, applications that do not need access to your direct messages will no longer have it, and you can continue to use these apps as usual.

这是表面上的好消息 - 这意味着您可以使用需要您的Twitter凭据的服务和应用,而无需授予这些服务/应用访问您的私人直接消息对于完全公开的服务/应用程序,这是有道理的。

但是附带了一个很大的三明治:Twitter正在通过要求实现这一变化所有希望或需要访问直接消息的第三方客户端,以使用繁琐的OAuth登录流进行身份验证。这是Twitter API公告组的开发者级公告

OAuth很复杂,难以总结,但简而言之,Twitter目前为第三方开发人员提供了两种进行身份验证的方法,OAuth的XAUTHxAuth允许开发人员简单地询问用户他们的Twitter用户名和密码如果你使用任何流行的第三方Twitter客户端为Mac或iOS - Twitterrific,Tweetbot,Hibari等- 你已经看到xAuth在行动了你启动应用程序,应用程序会显示一个对话框,其中包含您的Twitter用户名和密码的字段,您输入它们,然后您就在在幕后,使用xAuth的应用程序不会存储您的用户名和密码相反,他们使用它们一次通过Twitter的API进行身份验证,作为回报,他们会从Twitter收到一个密钥,授予对您帐户进行应用身份验证的访问权限该应用只需要存储该密钥。

另一方面,使用OAuth进行身份验证必须通过网络浏览器和twitter.com上的会话进行The app forwards you to a web page at Twitter, you sign in to your Twitter account on the twitter.com website, and then you’re prompted, by Twitter on their website, to grant permission to the app in question to access your account.

OAuth对于寻求访问您的Twitter凭据的基于Web的服务非常有意义例如,考虑像“最喜欢的”聚合器Favstar和Jason Kottke的出色表现恒星这些服务需要对您的Twitter帐户进行身份验证访问感谢OAuth,您永远不需要为这些网站提供您的Twitter密码,更不用说允许他们存储您的密码了相反,他们将您转发到twitter.com,您授予他们访问您的帐户的权限,然后twitter.com会将您转发回您开始的网站这是常识:基于Web的身份验证流程自然而然地运行从Web浏览器中

但是同样的基于Web的身份验证流程对本机应用程序来说是不和谐的当您打开本机应用程序 - Mac,Windows,iOS,Android,WebOS - 您不希望转发出应用程序并进入您的Web浏览器Developers can alleviate some of the context switching by using an embedded web view inside their native app for the OAuth authentication handshake, but at that point, why not just use xAuth and simply allow the user to enter their username and password in a native dialog box? So long as you remain within the app, there’s no security advantage for OAuth in an embedded web view over xAuth — but there’s a huge decrease in usability, simplicity, and clarity to the user.

我目前正在测试惠普新版的评测单元Veer 4G,无论出于何种原因,我尝试过并喜欢最好的WebOS Twitter客户端(坏小猫)使用OAuth而不是xAuth,与我使用的任何iOS应用程序相比,帐户创建是一个巨大的痛苦 - 所有这些都使用xAuth作为简单的“对话框中的用户名/密码”流程。

在本机客户端中设置多个帐户时OAuth更糟糕(良好的多帐户支持肯定是使用本机Twitter客户端而不是twitter.com网站的主要原因之一)Because then, not only do you need to go through the cumbersome OAuth login process for each additional account, but you must第一退出您已在Web浏览器中登录的Twitter帐户twitter.com Web界面本质上是单一帐户要在同一个网络浏览器中使用其他Twitter帐户,您必须先退出,然后使用其他帐户重新登录使用xAuth,要添加其他帐户,您只需输入另一个用户名和密码使用OAuth,您必须先签名您之前签署的任何帐户您只需在首次在客户端应用中创建每个新帐户时执行此操作 - 该应用可以保存多个帐户的OAuth凭据 - 但它仍然比简单地输入用户名和密码更复杂和烦人。

完整的Twitter客户端需要访问DM使用Twitterrific和Tweetbot以及TweetDeck的每个人都知道这些应用可以访问他们的DM因为他们正在使用这些应用程序来读写DMThis is very different from a web-based service like Favstar or Stellar, where you signed up to grant the service access to your Twitter favorites (which are public) and have no reason to grant the service access to your direct messages (which ought to be private)本机Twitter客户端的全部意义在于,某些用户希望获得只有本机应用程序才能提供的体验无法让OAuth感觉像是一种原生体验,并且在尝试新客户端时,您首先要做的是帐户身份验证。

使用xAuth和OAuth,您(用户)可以控制您授予对Twitter帐户的任何访问权限的每个应用程序和服务在twitter.com上,转到设置:应用程序查看有权访问您帐户的所有应用的列表我想不出为什么Twitter会通过OAuth强制使用本机应用程序,而不是创建一个障碍,将用户引导到Twitter自己的官方本机客户端因为Twitter的官方客户不会强迫用户跳过OAuth进行身份验证- 他们仍然只是在简单的原生对话框中询问您的用户名和密码。

如果您使用当前使用xAuth的第三方Twitter客户端,并且Twitter没有重新考虑此政策更改,那么当他们翻转需要OAuth的交换机时,您不会喜欢它如果您不想接受我的话,OAuth会为本机应用的用户提供糟糕的体验,从Loren Brichter那里拿走它- 早在2009年,当时Tweetie只是另一个第三方Twitter客户端。

以前: 狼!
下一个: 测量两次,切一次