我打算这样做:
- 创建一个MVC应用程序,用户点击一个按钮,被带到Twitter登录页面
- 在给出凭据后,用户被重定向到第二个页面
- 第二页有一个文本框和一个"Tweet"按钮
- 输入消息并点击"Tweet"将更新状态
我通过遵循LinqToTwitter codeplex页面的示例得到了第二点。
来自OAuth控制器的代码工作正常,它确实重定向回MVC应用程序的第二页。
但是我错过了一些没有发布状态的东西。
这是我传递用户输入状态的按钮click中的代码:
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控制器中
有人能帮我一下吗?将方法改为async并返回Task:
public async Task Status(string Status){//…
var tweet = await twitterContext.TweetAsync(twitterContext, status);
// ...
}
然后等待TweetAsync,将响应分配给一个名为tweet的状态实体。如果你想要一个单独的方法来调用TweetAsync,也让它async。使用async,您必须使调用链中的每个方法都是异步的。