我几乎在LinqToTwitter documentation中阅读了所有带有代码示例的文章。
我想获取UserID或用户的ScreenName,以便为登录的用户进行这样的呼叫。

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


但我能找到的就是上面类似的查询,这些查询的ScreenName具有硬编码的字符串。

在哪里可以从twitterCtx中获取自己的ScreenName / UserID?

干杯,

克里斯

最佳答案

首次授权时,将填充ScreenNameUserIDIAuthorizer

         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的方法。您可以执行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);
        }


ScreenNameUserIDUser查询返回的User实体的Account属性的VerifyCredentials实体中。它们分别被命名为ScreenNameResponse**UserIDResponse**属性。

关于c# - C#LinqtoTwitter从连接上下文获取ScreenName/UserID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36494700/

10-11 02:01