2010-01-06 37 views
0

我正在嘗試使用.NET(DotNetOpenAuth)的OAuth通過Web應用程序向Twitter帳戶發送更新。我瞭解OAuth和Twitter的基本工作流程。使用OAuth和DotNetOpenAuth進行Twitter更新訪問

在哪裏我很困惑,如果它在服務器Web應用程序中有用嗎?我不想要任何用戶交互。 但是,在應用程序啓動後,似乎需要重新創建請求令牌,並且還需要訪問令牌。這涉及用戶交互。

什麼是我的情況正確的工作流程? 在配置文件中存儲請求令牌或訪問令牌? 或者簡單的方法,使用HTTP基本認證?

感謝

回答

1

您的「請求令牌需要重新創建」短語表明您可能會遇到問題,每次用戶訪問您需要重新授權給Twitter時,或許您正在尋找訪問用戶Twitter帳戶,而他不在你的網站,並且當他們的令牌沒有被重新授權時,你如何做到這一點。是對的嗎?

如果是這樣,用戶不必每次訪問您的網站時都需要重新授權Twitter。令牌應該持續很長時間,這也可以讓您的網站在他們不直接與您的網站互動時訪問他們的Twitter帳戶。問題可能是您沒有實現IConsumerTokenManager接口,而是使用默認的InMemoryTokenManager,即僅用於示例,因爲每次重新啓動Web應用程序時,此內存專用標記管理器都會丟失標記。你自己實現這個簡單的接口應該存儲和讀取某些永久性存儲(如數據庫)中的令牌。

+0

安德魯,是的,這或多或少是我的問題。我已經實現了IConsumerManager,但並不持久。 你能告訴我令牌的有效期嗎?對於請求和訪問令牌?我可以無限期保存它們嗎? 謝謝 – EricSch 2010-01-07 11:06:53

+0

我不知道'IConsumerManager'是什麼。 Twitter不會自動失效訪問令牌,所以它們一直工作,直到用戶撤銷它們。我會無限期地存儲它們,直到他們停止工作。請求令牌的壽命通常很短,因爲只需要通過授權過程發送用戶即可。不超過一個小時後我會將其刪除。 – 2010-01-07 14:53:28

+0

哦,剛剛意識到通過'IConsumerManager'你一定意味着'IConsumerTokenManager'。 :)是的,所以只要讓它持久,那就應該解決你的問題,我想。 – 2010-01-07 14:54:15

2

如果我理解你正確地你的申請將不被與Twitter代表用戶的互動,但將作爲Twitter賬戶爲您的應用。

在這種情況下,需要考慮兩個主要因素。

1)如果您使用基本身份驗證,您是否希望將「從API」附加到每個狀態,否則如果您使用OAuth,則會發生您的應用程序名稱。 2)你是否想付出額外的努力來實現OAuth。

如果您決定使用OAuth,您將在應用程序中存儲應用程序使用者密鑰/祕密和帳戶訪問令牌,就像存儲帳戶屏幕名稱/密碼一樣。

+0

abraham,謝謝。 DotNetOpenAuth實現OAuth。這個做完了。 所以你告訴我,我只需要存儲訪問令牌(在密鑰/祕密旁邊創建訪問令牌)? 請求令牌我不再需要了嗎? 哪個生命期有訪問令牌? – EricSch 2010-01-07 11:12:40

+0

請求令牌僅用於交換訪問令牌。 訪問令牌是好的,直到用戶撤銷您的應用程序的授權爲止。 – abraham 2010-01-07 21:00:35

+0

謝謝,對不起。只允許有一個問題標記爲已接受 – EricSch 2010-01-08 01:10:08