我们的网站允许用户创建可以嵌入其他第三方网站的小部件。当最终用户在某个站点上与我们的小部件交互时,我们希望代表他/她发布一个twitter更新,然后在小部件上向用户显示一条消息(前提是twitter更新成功)。我们一直在使用带有basic auth的twitterapi来实现这一点(我们要求用户在小部件中输入用户名和密码)。既然twitter已经以独占方式迁移到OAuth,那么我们已经创建了一个twitter应用程序来使用OAuth API。
现在,一种方法是将我们的twitter应用程序注册为客户端应用程序(而不是浏览器应用程序)。为此,可能的流程是,我们要求用户转到一个url(单击链接并在新窗口中打开),然后在twitter上进行身份验证,对我们的应用程序授予权限,然后返回到widget并输入twitter提供的pin。这很麻烦。
另一种方法是将应用程序注册为web应用程序。一旦用户进行了身份验证并提供了perms(在以链接单击方式打开的新窗口中),我们就要求twitter重定向到我们自己的自定义url,其中包含访问令牌和其他信息(需要为用户发送tweet)。所以,发微博应该很管用。但是,如何通知小部件(在原始窗口的iframe中运行)tweet是否成功?
我可以想出一个基于投票的解决方案,但一定有更好的办法,对吧?
而且,我不能使用窗口打开(而不是href=and target=\u blank的链接),因为浏览器将它们视为弹出窗口并阻止它们。