2010-09-10 54 views
1

我们的网站可以让用户创建一个可嵌入到其他第三方网站的小部件。当最终用户在某个网站上与我们的窗口小部件进行交互时,我们希望以他/她的名义发布Twitter更新,然后在窗口小部件上向用户显示一条消息(只要twitter更新成功)。我们一直使用基本身份验证的twitter api来执行此操作(我们向用户询问了用户在widget中的用户名和密码)。现在Twitter已完全转移到OAuth,我们已经创建了一个twitter应用来使用OAuth API。的Web部件的Twitter OAuth的回调问题

现在,去了解这一个办法是我们的​​注册Twitter的应用程序的客户端应用程序(而不是浏览器的应用程序)。为此,可能的流程是我们要求用户转到一个URL(链接点击并在新窗口中打开),然后在Twitter上进行身份验证,授予我们的应用程序权限,然后返回该窗口小部件并输入Twitter提供的PIN 。这很麻烦。

另一种方法是注册应用程序的web应用程序。一旦用户验证并提供烫发(在新窗口打开链接点击),我们要求twitter使用访问令牌和其他信息(需要为用户发送推文)重定向到我们自己的自定义网址。所以,推文应该很好。但是,如何通知窗口小部件(在原始窗口的iframe中运行)该tweet是否成功?

我能想到的一个基于轮询的解决方案,但必须有一个更好的办法,对不对?

此外,我不能使用window.open(而不是链接href =和target = _blank),因为浏览器将它们视为弹出窗口并将其阻止。

回答

1

有2个选项(其中一个我个人使用)。

  1. 您可以将存储的事实,它只是在一个会话令牌认证(在回调脚本/页),并在您的iframe页面有是否一个JavaScript计时器检查另一个脚本(通过AJAX)会话已设置或没有设置 - 如果已设置,则iframe将知道它已成功。

  2. 第二个选择是做同样的事情,除了检查数据库是否存储(不使用会话)。

虽然我推荐做第一个选项。

+0

这就是我正在考虑的基于轮询的解决方案。有一个更好的方法吗 ? – letronje 2010-09-10 13:50:59

+0

不是我能想到的 - 几个月前我正在考虑同样的事情,并没有真正想到替代解决方案(哪个更好)。 – xil3 2010-09-10 14:03:47