【发布时间】:2011-04-10 17:53:45
【问题描述】:
我们的网站允许用户创建可以嵌入到其他第三方网站的小部件。当最终用户在某个站点上与我们的小部件交互时,我们希望代表他/她发布推特更新,然后在小部件本身上向用户显示一条消息(前提是推特更新成功)。我们一直在使用带有基本身份验证的 twitter api 来执行此操作(我们在小部件本身中询问用户他们的用户名和密码)。现在 twitter 已经完全迁移到 OAuth,我们创建了一个 twitter 应用程序来使用 OAuth API。
现在,解决此问题的一种方法是将我们的 twitter 应用程序注册为客户端应用程序(而不是浏览器应用程序)。为此,可能的流程是我们要求用户转到一个 url(链接单击并在新窗口中打开)然后在 twitter 上进行身份验证,授予我们的应用程序权限并返回小部件并输入 twitter 提供的 pin .这很麻烦。
另一种方法是将应用注册为网络应用。一旦用户进行身份验证并提供权限(在作为链接单击打开的新窗口中),我们要求 twitter 使用访问令牌和其他信息(需要为用户发送推文)重定向到我们自己的自定义 url。所以,推特应该可以正常工作。但是,我如何通知小部件(在原始窗口的 iframe 中运行)推文是否成功?
我可以想到一个基于轮询的解决方案,但必须有更好的方法,对吧?
另外,我不能使用 window.open(而不是带有 href = 和 target = _blank 的链接),因为浏览器将它们视为弹出窗口并阻止它们。
【问题讨论】:
标签: javascript iframe twitter oauth widget