2011-06-04 144 views
6

我使用這個twitter api library,到目前爲止一切都很好。我的問題(用戶體驗不是一個真正的問題)是每次你想用twitter登錄時,你需要打開一個彈出窗口。我的應用程序的Twitter api授權

眼下的流動是這樣的:

  • 用戶點擊該標誌在我的網頁上Twitter的標誌。
  • Javascript誘導彈出與Twitter的Oauth東西就可以了。如果你登錄了它所說的是登錄和取消。如果你不是有登錄領域。
  • 如果一切都很好,它會轉到我提供的回調網址。做了一堆東西,然後..
  • 我打電話給window.opener並通過驗證的信息,並從那裏我關閉窗口。

這實現起來非常容易,並且效果很好。我想知道如果twiiter登錄過程可以更像facebook這將是這樣的。

  • 用戶在我的頁面上點擊了帶有twitter標誌的登錄。
  • 如果用戶已經登錄並且已經對應用程序進行了自動化,那麼彈出窗口將會彈出,並立即消失,並將用戶數據返回到我的頁面。

我意識到我使用的PHP庫的Twitter和Facebook的流是從JavaScript方面,但我想知道如果我可以檢測,用PHP,如果用戶已經允許該應用程序,並簽署爲他們繞過額外的登錄/取消點擊。

回答

3

嘗試使用「Sign in with Twitter」流程。如果用戶已經通過身份驗證,那麼這是一次單擊操作。上面的鏈接文檔有過程的流程圖和描述,但我會在這裏列出的步驟(與加上強調),以及,和鏈接相關的API網頁:

「登錄與Twitter 「 的身份驗證模式允許用戶在只需點擊一下鼠標即可將其帳號與 連接到他們的 。它利用OAuth和 ,雖然流程非常相似,但 授權URL和工作流程與以下所述稍有不同 。

的 正常流動決定了應用 發送請求令牌oauth/authorize 在Twitter的實施 OAuth的規範。要利用 的「登錄與Twitter」, 應用程序應該發送的的oauth_token 參數收到oauth/authenticate 而不是要求 令牌。

的OAuth /驗證方法 將用戶的身份和他們 與呼叫 應用以前的交互取決於 不同的方式行事:如果用戶登錄 到

  1. twitter.com已經批准 呼叫申請, 用戶將立即通過認證 並返回到回叫URL。

  2. 如果 用戶未登錄到 twitter.com和已經批准 調用應用程序,用戶將 被提示登錄到twitter.com 那麼將立即驗證 並返回到回調URL。

  3. 如果 用戶登錄到twitter.com 和尚未批准 調用應用程序,該OAuth的 授權提示將 呈現。授權用戶然後將 重定向到回調URL。

  4. 如果 用戶未登錄到 twitter.com和尚未批准 調用應用程序,該 會提示用戶登錄到 twitter.com然後 之前將提交 授權提示重定向回到URL。

希望這符合該法案,並會爲你工作。

+0

是的,我記得通過這個閱讀,但當時我更專注於尋找一個開箱即用的解決方案。我會回去看看,因爲它聽起來像我在找的東西。我會讓你知道它是如何並可能發佈解決方案。謝謝 – locrizak 2011-06-04 13:07:08

0

我曾經與Facebook API有同樣的問題,但通過檢查API生成的cookie來查看是否有條目,如果用戶登錄時可能會提示提示,從而使其工作。我不確定Twitter,但在Facebook的情況下,僅存在cookie意味着用戶已經登錄到當前應用程序。既然他們都使用Auth,他們可能會使用相同的過程。但當然,我只是猜測。最好看看自己確認一下。

順便提一下,很棒的問題。 +1

+0

是的,我聽到你。但是像facebook一樣,Twitter的文檔也很少。我已經嘗試了一些圖書館和一個使用最好的圖書館(從我發現的),並有一些文件。它只是開箱即用,讓用戶做一兩次額外的點擊。我希望(在一個完美的世界中)世界上最珍貴的社交媒體公司或者任何產品公司發佈這樣的文檔,這些文檔至少是一半體面的文檔。 – locrizak 2011-06-04 03:02:26