2016-04-08 1 views
3

Я прочитал почти каждое сообщение с примером кода в LinqToTwitter documentation. Я хочу, чтобы получить UserID или ScreenName Пользователя, чтобы сделать вызов, как это для пользователя, вошедшего в систему.C# LinqtoTwitter получение ScreenName/UserID из контекста подключения

var friendList = 
      await 
      (from friend in twitterCtx.Friendship 
      where friend.Type == FriendshipType.FriendIDs && 
        friend.ScreenName == "JoeMayo" 
      select friend) 
      .SingleOrDefaultAsync(); 

Но все, что я могу найти это запросы, как выше, которые имеют предопределенный формат строки для Имя.

Где я могу получить собственное имя_экземпляра/UserID из twitterCtx?

Cheers,

Chris

ответ

3

Когда вы первый санкционировать, то ScreenName и UserID из IAuthorizer будет заполняться:

  var credentials = auth.CredentialStore; 
     string oauthToken = credentials.OAuthToken; 
     string oauthTokenSecret = credentials.OAuthTokenSecret; 
     string screenName = credentials.ScreenName; 
     ulong userID = credentials.UserID; 

Если вы предварительно загружаются все 4 учетных данных LINQ чтобы щелкать короткие замыкания, чтобы сэкономить время, пропускную способность и раздражение пользователя, не пройдя снова процесс авторизации. Побочным эффектом является то, что вы не получаете ScreenName и UserID, потому что это продукт авторизации. Таким образом, если вы сохранили чьи-то ключи после первоначальной авторизации, вы можете использовать их снова в последующих запросах, а затем захватить ScreenName и UserID.

Конечно, у вас есть другой способ получить ScreenName и UserID. Вы можете сделать запрос VerifyCredentials, как это:

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

      if (verifyResponse != null && verifyResponse.User != null) 
      { 
       User user = verifyResponse.User; 

       Console.WriteLine(
        "Credentials are good for {0}.", 
        user.ScreenNameResponse); 
      } 
     } 
     catch (TwitterQueryException tqe) 
     { 
      Console.WriteLine(tqe.Message); 
     } 

ScreenName и UserID находятся в User субъекте User собственности на Account лиц вернулся из VerifyCredentials запроса. Они называются ScreenNameResponse и **UserIDResponse** свойства, соответственно.

Смежные вопросы