使用OAuth和DotNetOpenAuth进行Twitter更新访问

问题描述:

我正在尝试使用.NET(DotNetOpenAuth)的OAuth通过Web应用程序向Twitter帐户发送更新。我了解OAuth和Twitter的基本工作流程。使用OAuth和DotNetOpenAuth进行Twitter更新访问

在哪里我很困惑,如果它在服务器Web应用程序中有用吗?我不想要任何用户交互。 但是,在应用程序启动后,似乎需要重新创建请求令牌,并且还需要访问令牌。这涉及用户交互。

什么是我的情况正确的工作流程? 在配置文件中存储请求令牌或访问令牌? 或者简单的方法,使用HTTP基本认证?

感谢

您的“请求令牌需要重新创建”短语表明您可能会遇到问题,每次用户访问您需要重新授权给Twitter时,或许您正在寻找访问用户Twitter帐户,而他不在你的网站,并且当他们的令牌没有被重新授权时,你如何做到这一点。是对的吗?

如果是这样,用户不必每次访问您的网站时都需要重新授权Twitter。令牌应该持续很长时间,这也可以让您的网站在他们不直接与您的网站互动时访问他们的Twitter帐户。问题可能是您没有实现IConsumerTokenManager接口,而是使用默认的InMemoryTokenManager,即仅用于示例,因为每次重新启动Web应用程序时,此内存专用标记管理器都会丢失标记。你自己实现这个简单的接口应该存储和读取某些永久性存储(如数据库)中的令牌。

+0

安德鲁,是的,这或多或少是我的问题。我已经实现了IConsumerManager,但并不持久。 你能告诉我令牌的有效期吗?对于请求和访问令牌?我可以无限期保存它们吗? 谢谢 – EricSch 2010-01-07 11:06:53

+0

我不知道'IConsumerManager'是什么。 Twitter不会自动失效访问令牌,所以它们一直工作,直到用户撤销它们。我会无限期地存储它们,直到他们停止工作。请求令牌的寿命通常很短,因为只需要通过授权过程发送用户即可。不超过一个小时后我会将其删除。 – 2010-01-07 14:53:28

+0

哦,刚刚意识到通过'IConsumerManager'你一定意味着'IConsumerTokenManager'。 :)是的,所以只要让它持久,那就应该解决你的问题,我想。 – 2010-01-07 14:54:15

如果我理解你正确地你的申请将不被与Twitter代表用户的互动,但将作为Twitter账户为您的应用。

在这种情况下,需要考虑两个主要因素。

1)如果您使用基本身份验证,您是否希望将“从API”附加到每个状态,否则如果您使用OAuth,则会发生您的应用程序名称。 2)你是否想付出额外的努力来实现OAuth。

如果您决定使用OAuth,您将在应用程序中存储应用程序使用者密钥/秘密和帐户访问令牌,就像存储帐户屏幕名称/密码一样。

+0

abraham,谢谢。 DotNetOpenAuth实现OAuth。这个做完了。 所以你告诉我,我只需要存储访问令牌(在密钥/秘密旁边创建访问令牌)? 请求令牌我不再需要了吗? 哪个生命期有访问令牌? – EricSch 2010-01-07 11:12:40

+0

请求令牌仅用于交换访问令牌。 访问令牌是好的,直到用户撤销您的应用程序的授权为止。 – abraham 2010-01-07 21:00:35

+0

谢谢,对不起。只允许有一个问题标记为已接受 – EricSch 2010-01-08 01:10:08