使用 OAuth 通过 Linq 登录 Twitter API 后,如何获取登录用户的 UserID 或屏幕名称

本文关键字:登录 用户 获取 UserID 屏幕 何获取 Twitter Linq 通过 OAuth API | 更新日期: 2023-09-27 18:32:06

两者

twitterContext.Authorizer.CredentialStore.UserID

twitterContext.Authorizer.CredentialStore.ScreenName授权成功后为空。

查询 API 以获取用户对象需要用户 ID 或屏幕名称。

使用 OAuth 通过 Linq 登录 Twitter API 后,如何获取登录用户的 UserID 或屏幕名称

如果他们已登录(授权),则可以执行帐户/验证凭据查询,如下所示:

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

这将返回一个帐户实体,该实体具有用户实体的 User 属性,该实体为您提供屏幕名称响应和用户 ID esponse。

顺便说一句,当一个人第一次登录时,只有两个密钥(consumerKey和consumerSecret),twitterContext.Authorizer.CredentialStore将拥有他们的UserID和ScreenName。这是因为用户 ID 和屏幕名称是在授权过程结束时提供的。但是,如果您使用的是单用户授权程序或使用所有 4 个密钥设置凭据存储,则这些值不存在。LINQ to Twitter 将绕过授权,因为它已经拥有正确签署请求所需的信息(4 个密钥)。绕过授权更有效,但结果是不会使用用户 ID 和屏幕名称填充凭据存储。因此,检测这是否是特定用户首次登录到您的应用程序并在当时存储 UserID 和屏幕名称可能会很有用,这将有助于您避免对 VerifyCredentials 进行额外查询。