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

使用OAuth和DotNetOpenAuth进行Twitter更新访问,twitter,oauth,dotnetopenauth,Twitter,Oauth,Dotnetopenauth,我正在尝试使用OAuth和.NET(DotNetOpenAuth)通过web应用程序向Twitter帐户发送更新。我了解OAuth和Twitter的基本工作流程 我不知道它在服务器web应用程序中是否有用?我不想要任何用户交互。 但在应用程序启动后,需要重新创建请求令牌和访问令牌。这涉及到用户交互 我的案例的正确工作流程是什么? 是否将请求令牌或访问令牌存储在配置文件中? 还是简单的方法,使用HTTP基本身份验证 谢谢如果我理解正确,您的应用程序将不会代表您的用户与Twitter交互,而是充当您

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

我不知道它在服务器web应用程序中是否有用?我不想要任何用户交互。 但在应用程序启动后,需要重新创建请求令牌和访问令牌。这涉及到用户交互

我的案例的正确工作流程是什么? 是否将请求令牌或访问令牌存储在配置文件中? 还是简单的方法,使用HTTP基本身份验证


谢谢

如果我理解正确,您的应用程序将不会代表您的用户与Twitter交互,而是充当您应用程序的Twitter帐户

在这种情况下,有2个主要因素需要考虑。 1) 如果使用基本身份验证,是否希望将“来自API”附加到每个状态,或者如果使用OAuth,是否希望将应用程序名称附加到每个状态。 2) 您想投入额外的精力来实现OAuth吗


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

如果我理解正确,您的应用程序将不会代表您的用户与Twitter交互,而是充当您的Twitter帐户你的申请

在这种情况下,有2个主要因素需要考虑。 1) 如果使用基本身份验证,是否希望将“来自API”附加到每个状态,或者如果使用OAuth,是否希望将应用程序名称附加到每个状态。 2) 您想投入额外的精力来实现OAuth吗

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

您的“请求令牌需要重新创建”这句话暗示你可能会遇到这样的问题:每次你的用户访问你都需要重新授权到Twitter,也许你正在寻找一种方法来访问用户的Twitter帐户,而他不在你的网站上,当他们的代币还没有重新授权时,你怎么能这样做呢。是这样吗

如果是这样,用户就不必在每次访问您的站点时重新授权Twitter。代币应该可以使用很长时间,这样当你的网站不直接与你的网站交互时,你的网站也可以访问他们的Twitter帐户。问题可能是您尚未实现
IConsumerTokenManager
接口,而是使用默认的
InMemoryTokenManager
,该接口仅供示例使用,因为每次重新启动web应用时,此仅内存令牌管理器都会丢失令牌。您自己的这个简单界面的实现应该从一些持久性存储(如数据库)中存储和读取令牌。

您的“请求令牌需要重新创建”短语表明您可能遇到了这样的问题:每次用户访问时,您都需要重新授权Twitter,也许你正在寻找一种方法,在用户不在你的网站上时访问他的Twitter帐户,当他们的代币还没有重新授权时,你怎么能这样做呢。是这样吗


如果是这样,用户就不必在每次访问您的站点时重新授权Twitter。代币应该可以使用很长时间,这样当你的网站不直接与你的网站交互时,你的网站也可以访问他们的Twitter帐户。问题可能是您尚未实现
IConsumerTokenManager
接口,而是使用默认的
InMemoryTokenManager
,该接口仅供示例使用,因为每次重新启动web应用时,此仅内存令牌管理器都会丢失令牌。您自己实现的这个简单接口应该存储并读取一些持久性存储(如数据库)中的令牌。

Andrew,是的,这或多或少是我的问题。我已经实现了IConsumerManager,但不是持久的。你能告诉我代币的寿命吗?对于请求和访问令牌?我可以无限期地保存它们吗?谢谢,我不知道什么是
IConsumerManager
。Twitter不会自动使访问令牌过期,因此它们会一直工作到用户撤销它们为止。我会无限期地保存它们,直到它们停止工作。请求令牌通常有很短的生存期,因为它们只需要生存到发送用户通过授权过程所需的时间。我会在不超过一个小时后删除它们。哦,我刚刚意识到,
IConsumerManager
你的意思一定是
IConsumerTokenManager
:)是的,所以只要让它持续下去,我想这应该会解决你的问题。安德鲁,谢谢你在DotNetOpenAuth上所做的伟大工作。非常有用。现在我试图用“Expect100Continue”来绕过“417预期失败”。在第一次OAuth调用之前,尝试将其添加到代码中:
ServicePointManager.FindServicePoint(“http://twitter.comExpect100Continue=false
Andrew,是的,这或多或少是我的问题。我已经实现了IConsumerManager,但不是持久的。你能告诉我代币的寿命吗?对于请求和访问令牌?我可以无限期地保存它们吗?谢谢,我不知道什么是
IConsumerManager
。Twitter不会自动使访问令牌过期,因此它们会一直工作到用户撤销它们为止。我会无限期地保存它们,直到它们停止工作。请求令牌通常有很短的生存期,因为它们只需要生存到发送用户通过授权过程所需的时间。我会在不超过一个小时后删除它们。哦,我刚刚意识到,
IConsumerManager
你的意思一定是
IConsumerTokenManager
:)是的,所以只要让它持久化就可以了