【问题标题】:Updating Twitter status using LinqToTwitter使用 LinqToTwitter 更新 Twitter 状态
【发布时间】:2014-06-30 18:06:41
【问题描述】:

这是打算做的事情:

  1. 制作一个 MVC 应用程序,用户在该应用程序上单击一个按钮并被带到 Twitter 登录页面
  2. 提供凭据后,用户被重定向到第二个页面
  3. 在 secong 页面上有一个文本框和一个“Tweet”按钮
  4. 输入消息并点击“Tweet”将更新状态

按照 LinqToTwitter codeplex 页面中的示例,我得到了第二点。

来自 OAuth 控制器的代码工作正常,它确实重定向回 MVC 应用程序的第二页。

但是我错过了一些没有发布状态的东西。

这是我传递用户输入状态的按钮单击中的代码:

public ActionResult Status(string status)
    {
        var auth = new MvcAuthorizer
        {
            CredentialStore = new SessionStateCredentialStore()
        };

        auth.CompleteAuthorizeAsync(Request.Url);

        var twitterContext = new TwitterContext(auth);

        TweetAsync(twitterContext, status);

        return View(); //return some view to the user
    }

    void TweetAsync(TwitterContext twitterCtx, string statusToUpdate)
    {
        var tweet =  twitterCtx.TweetAsync(statusToUpdate);

        if (tweet != null)
        {
          // Inform the user about success
        }
     } 

上述两种方法也在OAuth控制器中。

有人可以帮我解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: asp.net-mvc linq-to-twitter


    【解决方案1】:

    更改您的方法以使用异步并返回任务:

    公共异步任务状态(字符串状态) { //...

        var tweet = await twitterContext.TweetAsync(twitterContext, status);
    
        // ...
    }
    

    然后等待 TweetAsync,将响应分配给名为 tweet 的 Status 实体。如果你想要一个单独的方法来调用 TweetAsync,也可以让它异步。使用异步,您必须使调用链中的每个方法都异步。

    【讨论】:

    • 好的,我会试试的,你能告诉我为什么我得到请求的资源上没有“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'localhost:port'。
    • 我在 FF 开发工具中看到这个 XMLHttpRequest 无法加载 api.twitter.com/oauth/…。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'localhost:32950'。
    • 确保您没有使用 InProc 会话 - 总是一个问题,因为会话循环。您可以尝试让示例应用程序正常工作 - 您可以在可下载的源代码中找到它。这将有助于解决任何基本的通信问题。我有一些文档可以更详细地解释 oauth:linqtotwitter.codeplex.com/… 我还有一个常见问题解答,可以帮助解决 OAuth 401 问题:linqtotwitter.codeplex.com/…
    • 谢谢乔。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2016-03-12
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多