2016-01-26 74 views

回答

1

如果他們在(授權)已經登錄,你可以做一個帳戶/的verifyCredentials查詢,例如:

  var verifyResponse = 
       await 
        (from acct in twitterCtx.Account 
        where acct.Type == AccountType.VerifyCredentials 
        select acct) 
        .SingleOrDefaultAsync(); 

這將返回帳戶實體與用戶屬性,讓你一個用戶實體ScreenNameResponse和UserIDResponse。

順便說一句,當一個人第一次登錄時,只有兩個鍵(consumerKey和consumerSecret),twitterContext.Authorizer.CredentialStore將有他們的UserID和ScreenName。這是因爲UserID和ScreenName是在授權過程結束時提供的。但是,如果使用SingleUserAuthorizer或使用全部4個密鑰設置CredentialStore,則這些值不存在。 LINQ to Twitter將繞過授權,因爲它已經擁有它需要的信息(4個密鑰)來正確簽署請求。繞過授權更有效,但結果是您不用UserID和ScreenName填充CredentialStore。因此,檢測這是否是特定用戶第一次登錄到您的應用程序,並在此時存儲UserID和ScreenName可能會很有用,這將有助於避免對VerifyCredentials進行額外查詢。

+1

對不起,我應該更清楚我的設置。我的確在使用SingleUserAuthorizer。非常感謝您提供詳細的答案,所有這些都很有意義,我感謝您花時間。 – AndyJ