1

我正在编写一个使用 Linq to Twitter 来帮助用户管理 Twitter 帐户的网络应用程序。我了解我需要在服务器端隐藏我的消费者密钥和消费者秘密,以防止其暴露。

为了做到这一点,我知道我可以使用 MvcAuthorizer 并在我的 MVC 应用程序的服务器端使用 Linq To Twitter。但是,如果我想将 Linq To Twitter 代码与 Web 应用程序分开,并将其公开为与我的 MVC 应用程序分开托管的 Web 服务,该怎么办?

所以数据流看起来像这样......

Web 浏览器客户端 <--> 我的 Web 服务 (ServiceStack) <--> Linq to Twitter <--> Twitter REST API

通过阅读 Linq to Twitter 和 dev.twitter.com 网站上的文档,我的理解是我的流程应该是这样的。

  1. 用户单击 Web 应用程序中启动授权过程的某个按钮
  2. 用户被重定向到 Twitter,并授权该应用程序使用。
  3. 用户被重定向回我指定的回调 URL。我的应用现在可以通过该回调 URL 中的查询字符串访问用户的 OAuth 令牌
  4. 我的应用程序将这些 OAuth 令牌存储在某处
  5. 我的代理 Web 服务使用这些 OAuth 令牌代表用户查询 Twitter API。

我想我可以使用此处关于 MvcAuthorizer 的说明执行步骤 1-4 。

我不确定如何完成 5。我的想法是有一条 UserTweetsRequest 消息发送到我的服务。该消息将指定 Twitter 用户名。在服务内部,我会查找为该用户存储的 OAuth 令牌,将它们与我的消费者令牌结合起来,然后使用 Linq To Twitter 进行查询。

如果我现在拥有所有消费者和用户令牌,我需要通过 Linq to Twitter 调用 Twitter API,我应该在我的服务实现中使用哪个 Authorizer 来实现这一点?我需要自己实现吗?

4

1 回答 1

1

如果您拥有全部 4 个密钥,则 LINQ to Twitter 授权者旨在绕过 Twitter 授权过程并仅签署请求。听起来就是这样,因此您可以(几乎)在您的 Web 服务中使用任何授权者。只要您提供所有 4 个凭据,您就可以使用 SingleUserAuthorizer、MvcAuthorizer 或 WebAuthorizer。

我的Samples Page上有一个 WCF 演示。您可能需要使用示例更新 LINQ to Twitter 的版本,但查看它可能很有用。

于 2013-08-08T15:35:39.410 回答