c# LinqtoTwitter 从连接上下文中获取 ScreenName/UserID
c# LinqtoTwitter getting ScreenName/UserID from connection context
我几乎 post 都读过 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?
干杯,
克里斯
当您第一次授权时,IAuthorizer
的 ScreenName
和 UserID
将被填充:
var credentials = auth.CredentialStore;
string oauthToken = credentials.OAuthToken;
string oauthTokenSecret = credentials.OAuthTokenSecret;
string screenName = credentials.ScreenName;
ulong userID = credentials.UserID;
如果您要预加载所有 4 个凭据,LINQ to 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
位于从 VerifyCredentials
查询。它们分别被命名为 ScreenNameResponse
和 **UserIDResponse**
属性。
我几乎 post 都读过 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?
干杯,
克里斯
当您第一次授权时,IAuthorizer
的 ScreenName
和 UserID
将被填充:
var credentials = auth.CredentialStore;
string oauthToken = credentials.OAuthToken;
string oauthTokenSecret = credentials.OAuthTokenSecret;
string screenName = credentials.ScreenName;
ulong userID = credentials.UserID;
如果您要预加载所有 4 个凭据,LINQ to 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
位于从 VerifyCredentials
查询。它们分别被命名为 ScreenNameResponse
和 **UserIDResponse**
属性。