2010-09-10 55 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