您好我想用linqToTwitter发送私信,这是我的代码:
var auth = new MvcAuthorizer
{
Credentials = new InMemoryCredentials()
{
ConsumerKey = TwitterClient.ConsumerKey,
ConsumerSecret = TwitterClient.ConsumerSecret,
OAuthToken = TempData["AccessToken"] as string,
AccessToken = TempData["TokenSecret"] as string
}
};
var twitterContext = new TwitterContext(auth);
var message = twitterContext.NewDirectMessage(auth.UserId, "Hi ucef, cool to discuss with you" + DateTime.Now);
但是auth.UserId为null,你知道吗!!!
答案 0 :(得分:0)
只有在用户对您的应用进行身份验证的OAuth流程后,授权人才会立即持有UserID。在用户验证您的应用程序后,Twitter会发回UserID和ScreenName。
您正在同时加载所有4个凭据,这样便于查询Twitter,而无需通过OAuth流程。但是,由于您没有完成OAuth流程,因此无法填充UserID。
解决此问题的一种方法是在用户首次验证并从后续查询中存储的位置检索保存的ID后保存UserID。
另一项工作是进行帐户验证问答查询。您可以从Account.User.UserIdentifier属性中获取UserID。
乔