我几乎在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?
干杯,
克里斯
最佳答案
首次授权时,将填充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到Twitter会短路,以节省时间,带宽和用户烦恼,而无需再次执行授权过程。副作用是您没有获得
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**
属性。关于c# - C#LinqtoTwitter从连接上下文获取ScreenName/UserID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36494700/