2016-04-08 5 views
3

LinqToTwitter documentationのコード例でほぼすべての投稿を読んだことがあります。 私はC#LinqtoTwitterは接続コンテキストからScreenName/UserIDを取得しています

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

。ログインしているユーザーのために、このような呼び出しを行うためにユーザーIDまたはユーザーのスクリーンネームを取得したい。しかし、私は見つけることができるすべてはスクリーンネームのためにハードコードされた文字列を持っている人上記のようなクエリです。

twitterCtxから自分のScreenName/UserIDを取得するにはどうすればよいですか?あなたが最初に承認した場合

乾杯、

クリス

答えて

3

は、IAuthorizerScreenNameUserIDが移入されます

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

あなたはすべての4つの資格情報を事前にロードしている場合は、LINQ Twitterの短絡によって、認証処理をやり直さずに時間、帯域幅、ユーザーの煩わしさを軽減できます。副作用は、承認の製品であるため、ScreenNameUserIDが得られないということです。したがって、最初の承認後に誰かの鍵を保存しておけば、その後の照会で再び使用できるので、その時点でScreenNameUserIDを取得してください。

もちろん、ScreenNameUserIDを取得する別の方法があります。

 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); 
     } 

ScreenNameUserIDVerifyCredentialsクエリから返さAccountエンティティのUser財産のUser実体である:あなたはこのように、VerifyCredentialsクエリを行うことができます。それらはそれぞれScreenNameResponseおよび**UserIDResponse**という名前です。

関連する問題