2011-08-21 39 views
3

免責聲明:我仍然從MVC3開始(特別是OAuth)。我可能會犯一個基本的錯誤。Twitter OAuth沒有正確重定向到我的網站

的問題

我的控制器看到該Cookie不會存儲[注:每一個不同的討論,是的,我使用的cookies。讓我們接受並繼續。]並指引我到Twitter。大。但是,當我點擊授權時,我馬上回到Twitter的授權頁面。

我的預感到目前爲止

看來,我的應用程序不能正確處理Twitter的回發/回調到我的網頁。

成分

  • ASP.NET MVC 3
  • Twitterizer庫
  • C#

總體思路/邏輯流程

有可能是一個問題 與此,因爲這是我第一次與MVC3和OAuth全面。

http://i56.tinypic.com/2rxchw7.png

守則

我猶豫不決,在第一,因爲我想確保我的這個應該如何流動的看法是正確的,並張貼,因爲有可以理解的一點點它挖掘。

在此先感謝您的幫助!

+0

您是否在您的Twitter應用程序中指定了回調,或者您是否在授權過程中指定了oauth_callback? –

+0

感謝您的回覆!我已經嘗試了兩種,將兩者的設置設置爲相同。因爲我試圖重定向到本地主機,所以我使用了http://127.0.0.1:[port]/Home/ConnectToTwitter。然後我嘗試指定xyz.com:[port]/Home/ConnectToTwitter,然後在我的主機文件中設置xyz.com以重定向到本地主機。有沒有更好的非生產測試方法?這可能是問題。 – SeanKilleen

回答

0

我不是100%確定,因爲我不是Twitter API專家。但我認爲Twitter不允許本地主機作爲回調。也可能是他們在允許重定向發生之前進行URL解析。他們無法達到.hosts文件中指定的內容。

請考慮簡單地將oauth_callback發佈到實時網址,最好由您自己控制。檢查你最終在那裏。然後你可以研究如何獲得oauth_token和oauth_verifier。 (pro-tip:抓取網址,或者如果可以的話,讓頁面在屏幕上打印變量以便於抓取)。

還測試指定「oob」作爲回調,看看會發生什麼。

編輯: 我剛剛意識到,抓取URL不會工作,因爲你正在做一個Web應用程序。抱歉。但是如何讓一個實時URL使用oauth_token和oauth_verifier並從該頁面重定向到本地主機或其他?

+0

那麼,第一個原因是,該網站純粹是在發展,我沒有託管的活頁面。 :)猜猜我會繼續這樣做,但我很驚訝Twitter不會幫助那些在開發環境中進行測試的人。 – SeanKilleen

+0

我看到你的問題。我發現這個網頁:http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local-machine /。也許這將起作用。 –

+1

Twitter不允許您註冊本地主機回叫網址,但允許您在運行時覆蓋註冊的網址。此外,Twitterizer要求開發人員覆蓋註冊的回調網址。沒有它,Twitter不會爲回調提供驗證者。 –

0

如果我正確閱讀您的流程圖,您可能會誤解oauth流程的一部分。當我按照用戶第一次訪問圖表的方式(沒有cookie,沒有令牌/驗證器)跟蹤圖表時,在twitter交互後您有一個POST。永遠不會有一個POST。 Twitter的服務器不執行回調。用戶將被重定向(HTTP 302)到標記和驗證器附加到查詢字符串的回調URL。

此外,具有不同的行爲似乎很奇怪,具體取決於您是否提供了驗證者或令牌。如果你做得對,你就不會有沒有另一個,即使你做錯了,你永遠不會有一個沒有令牌的驗證者。

你在什麼時候調用GetAccessToken方法?

+0

嗨Ricky,考慮到你的意見和探索,我現在看到Twitter做了重定向。鑑於此,它應該是對MVC控制器的GET請求,因此不需要另一個[httpPost]控制器。我最初添加了額外的控制器出來的混亂,從twitter不允許本地主機回調。謝謝! – SeanKilleen