【发布时间】:2011-08-19 20:39:09
【问题描述】:
与此问题基本相同,但正在寻找 Python 中的解决方案。 How to work around Twitter OAuth?
理想情况下,我不想费力设置用户/登录界面和后端,因为我所做的工作是出于内部目的。
我还想绕过需要将用户重定向到 Twitter 以进行授权的部分。
谢谢
【问题讨论】:
标签: python twitter twitter-oauth
与此问题基本相同,但正在寻找 Python 中的解决方案。 How to work around Twitter OAuth?
理想情况下,我不想费力设置用户/登录界面和后端,因为我所做的工作是出于内部目的。
我还想绕过需要将用户重定向到 Twitter 以进行授权的部分。
谢谢
【问题讨论】:
标签: python twitter twitter-oauth
您会想要使用 Twitter 的 OOB 流程。这个答案很好地解释了这一点
【讨论】:
所以,仔细阅读一下,您有一个 twitter 帐户和一个密码,因为这是内部的,所以您不想使用需要用户与之交互的身份验证过程?
OAuth 背后的理念是您永远不会知道用户的密码是什么;我同意,如果我对您尝试做的事情是正确的,那不是正确的事情。 JohnD建议的OOB Flow也有同样的问题。
如果您确实有帐户/密码,那么您可以使用登录表单和推文表单直接处理向网站提交的内容。不幸的是,这意味着您无权访问 API(他们去年通过 API 进行了基本身份验证)——这取决于您尝试执行的操作,这可能是也可能不是问题。
编辑:
使用 OAuth 并记住令牌。根据 twitter API 文档,它永远不会过期,并且由于您可能关心的帐户数量有限,您只需为每个帐户跳过一次 OAuth 箍,直到您需要另一个帐户为止。您甚至可以在给定用户名和密码的情况下以编程方式完成整个操作,假设他们在某些时候没有在其中粘贴验证码。但我怀疑你最好的选择是只使用 OAuth 并存储令牌。
【讨论】:
我刚刚发现 this bash script 有效,亲自测试,只需将 --ssl 更改为 --sslv3。
它基于mobile.twitter.com上使用的更简单的auth方法,您可以使用相同的原理使用urllib2和re模块来处理它。
否则你可以考虑靠http://www.supertweet.net/这样的网站
SuperTweet.net 提供了一个安全的 使用基本身份验证的机制 在你的脚本中使用 Twitter API 和其他 Twitter 应用程序。只需注册 通过 Twitter 授权 MyAuth API 代理 SuperTweet.net 应用程序 然后分配您的密码 选择(不是你真正的 Twitter 密码),您的应用程序可以 与http://api.supertweet.net 一起使用 API。
编辑:我现在看到这个网站被引用在一篇文章中,链接在How to work around Twitter OAuth? 的答案中,如果你已经阅读过它,请忽略这部分。
【讨论】:
如果您使用的是桌面或移动应用程序,则可以使用xAuth。从用户的角度来看,它与获取原始 OAuth 凭据的基本身份验证相同,并且无需访问外部页面。请注意,您必须获得 Twitter API 团队的批准才能获得 xAuth 访问权限。
【讨论】:
您可以考虑查看Mechanize。它使浏览器活动自动化。
所以您可以将您的用户名/密码提供给您的脚本。然后脚本应该将这些凭据传递给http://twitter.com/#!/login。
通常,如果您从该网页手动登录,则响应将是另一个页面,具体取决于您使用的凭据是否正确。
同样的事情:根据凭据是否正确,响应是另一个页面。
然后您可以检查响应是“登录失败”页面还是“登录通过”页面,然后从那里执行您需要执行的操作。
希望对你有帮助
【讨论】: