2013-05-13 64 views
1

我有一個MVC4網絡應用程序,它使用LinqToTwitter在用戶的個人資料頁面被訪問時顯示推文,如果他們有Twitter處理。LinqToTwitter - 對於ApplicationOnlyAuthorizer,IsAuthorized總是返回false

爲此,我使用ApplicationOnlyAuthorizer:

var auth = new ApplicationOnlyAuthorizer 
{ 
    Credentials = new InMemoryCredentials 
    { 
    ConsumerKey = "twitterConsumerKey", 
    ConsumerSecret = "twitterConsumerSecret" 
    } 
}; 
auth.Authorize(); 

我的問題是,我發現auth.IsAuthorized總是返回false,即使我有打電話Authorize()和我能夠成功地讓到Twitter電話。而且,我發現,如果我在撥打Twitter的每個電話中撥打Authorize(),如果我重複撥打足夠多的時間,則會拋出未處理的異常。

在我打電話給Twitter之前,我能夠知道auth是否被授權似乎相當重要。現在,我已經在一個快速修復中存儲我自己的IsAuthorized Session變量 - 但我不確定這是多麼可靠,因爲Session變量可能會超過實際身份驗證本身?

任何意見,將不勝感激。

回答

2

您第一次授權時,Twitter將返回一個不記名令牌。授權後,你可以從auth.BearerToken屬性中獲取。在後續的通話中,您可以重複使用相同的持票人標記。不記名令牌不會過期,除非您使其無效。 Twitter的建議是,您使用不記名令牌約15分鐘,然後再重新授權。

+0

無論出於何種原因,我得到BasicToken而不是BearerToken,並且IsAuthorized對我來說始終是虛假的。然後,我收到一個內部異常,包含「遠程服務器返回一個錯誤:(400)錯誤請求」的錯誤認證數據。「,有什麼想法? – Oakcool 2013-09-06 00:45:25

+0

由於某種原因,這是投擲403禁止錯誤 – 2014-01-13 07:21:42

+0

@Oakcool你的情況聽起來就像一個401.我有一個常見問題在這裏:https://linqtotwitter.codeplex.com/wikipage?title=LINQ%20to%20Twitter%20FAQ&referringTitle=Documentation – 2014-01-13 08:21:32