【发布时间】:2013-01-17 09:14:55
【问题描述】:
我正在编写一个 MVC4 Web 应用程序,它必须查询 Twitter 版本 1.1 API。内置于MVC4中,我可以在AuthConfig.cs中激活OAuthWebSecurity.RegisterTwitterClient时使用“使用Twitter登录”功能。然后验证 Twitter 登录,但我想做的是授权用户,以便我可以代表用户进行 API v1.1 调用。
我在 Stack Overflow 上找到了 this post,它使用自定义类来解决不同的问题(force_login 参数问题),但我使用了这些类并将 UserAuthorizationEndpoint 更改为指向 oauth/授权。我改了这行代码:
UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authenticate", HttpDeliveryMethods.GetRequest | HttpDeliveryMethods.AuthorizationHeaderRequest),
到这里:
UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authorize", HttpDeliveryMethods.GetRequest | HttpDeliveryMethods.AuthorizationHeaderRequest),
它适用于授权,这意味着现在我的应用程序授权了 Twitter 用户。但是,当我调用 API v1.1 时,我收到“(401) Unauthorized”错误。这是我用于调用的代码:
var var1 = WebWorker.PrepareAuthorizedRequest(new MessageReceivingEndpoint("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=sitestreams", HttpDeliveryMethods.GetRequest), accessToken);
var var2 = var1.GetResponse();
我想我还需要 oauth_token_secret 来授权调用。 DotNetOpenAuth 可以给我 oauth_token_secret 吗?然后我可以使用 WebWorker.PrepareAuthorizedRequest 是否也发送 oauth_token_secret?
我还在 Stack Overflow 上找到了 this post,上面说我不能为此使用 DotNetOpenAuth。但是,从那以后 DotNetOpenAuth 代码已经更新,我想知道它现在是否适合我想做的事情,这本质上是一件非常简单的事情:允许用户使用 Twitter 登录我的 Web 应用程序,然后允许我的网络应用程序来查看用户的关注者。
所以归结为:我可以在 MVC4 中使用 DotNetOpenAuth 来授权用户,然后代表用户调用 Twitter API v1.1,例如 GET Followers/ id。如果可能,我该怎么做?
【问题讨论】:
标签: asp.net-mvc-4 twitter-oauth dotnetopenauth