【问题标题】:Send Private message with LinqToTwitter使用 LinqToTwitter 发送私人消息
【发布时间】:2012-10-25 11:50:24
【问题描述】:

嗨,我想用 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 为空,你知道吗!!!

【问题讨论】:

  • 你想给自己发私信吗? auth.UserId 具有经过身份验证的用户的 id。而且,访问令牌和令牌秘密是否有效?
  • 感谢 Zach 先生,您可以看到下面的链接,我描述了如何获取访问令牌和令牌秘密,我的目标是获取已通过身份验证的用户的用户 ID。我稍后会发私信。 stackoverflow.com/questions/13050638/…

标签: asp.net-mvc-3 c#-4.0 linq-to-twitter


【解决方案1】:

授权方只​​会在您完成 OAuth 流程后立即持有用户 ID,用户在该流程中对您的应用进行身份验证。在用户对您的应用进行身份验证后,Twitter 会发回 UserID 和 ScreenName。

您将同时加载所有 4 个凭据,这样可以方便地查询 Twitter,而无需通过 OAuth 流程。但是,由于您没有通过 OAuth 流程,因此无法填充 UserID。

解决此问题的一种方法是在用户第一次进行身份验证后保存用户 ID,并从您在后续查询中存储它的位置检索保存的 ID。

另一种解决方法是执行 Account VerifyCredentials 查询。您可以从 Account.User.UserIdentifier 属性中获取 UserID。

【讨论】:

  • 我尝试了这两个 aproche,第一个,auth.UserId 为空,第二个是异常 401,所以我认为 token 和 tokenSecret 无效,Joe 先生能否验证一下我得到令牌和 tokenSecret 是正确的,这是我如何得到它的链接:stackoverflow.com/questions/13050638/…。谢谢乔先生 :-) !!
  • 此页面上有一个 MvcOauthDemo 示例:linqtotwitter.codeplex.com/… - 您可能希望先运行该示例,这可能有助于找出您的代码和示例之间的区别。另外,我在这里有一个常见问题解答来帮助调试 401 错误:linqtotwitter.codeplex.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 2020-12-05
相关资源
最近更新 更多