我已经在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?
干杯,
克里斯
答案 0 :(得分:3)
首次授权时,ScreenName
的{{1}}和UserID
将被填充:
IAuthorizer
如果您预先加载所有4个凭据,LINQ to Twitter短路可以通过不再通过授权过程来节省时间,带宽和用户烦恼。副作用是您无法获得 var credentials = auth.CredentialStore;
string oauthToken = credentials.OAuthToken;
string oauthTokenSecret = credentials.OAuthTokenSecret;
string screenName = credentials.ScreenName;
ulong userID = credentials.UserID;
和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
属性。