2011-05-06 179 views
5

基本上与此问题相同的问题,但在Python中寻找解决方案。 How to work around Twitter OAuth?绕过Twitter OAuth

理想情况下,我不想经过设置用户/登录界面和后端的环节,因为我所做的工作是为了内部目的。

我还想绕过我需要将用户重定向到Twitter进行授权的部分。

谢谢

回答

3

你会想使用Twitter的OOB流。这是在这个答案很好地解释

Twitter API - OOB Flow

+1

理想情况下,我希望该过程具有零交互涉及用户。如果我没有弄错,这个流程仍然需要输入PIN码。 – super9 2011-05-09 02:26:45

+3

您希望如何在未经用户认证的情况下访问帐户? – Acorn 2011-05-09 03:06:20

+1

我想要一个单向认证流程,而不需要用户的任何输入。我从来没有说过没有被用户认证。 – super9 2011-05-10 04:42:34

3

所以,字里行间一点,你有一个Twitter帐户和密码,因为这是内部的,所以你不想去与一个auth过程这需要用户与之交互?

OAuth背后的想法是,你永远不知道用户的密码是什么;我同意,如果我对你想要做的事情是正确的,那是不对的。 JohnD建议的OOB流程具有相同的问题。

如果您确实有帐号/密码,那么您可以使用登录表单和推文表单直接处理对网站的提交。不幸的是,这意味着你无法访问API(他们去年通过API加入了基本身份验证) - 这取决于你正在尝试做什么,这可能会或可能不会成为问题。

编辑:

使用OAuth并记住令牌。根据twitter API文档,它永远不会过期,并且由于您大概只有一些您关心的帐户数量有限,因此您可以为每个帐户跳过一次OAuth环聊,直到您需要其他帐户为止。你甚至可以用编程的方式完成整个事情,只要用户名和密码,假设他们没有在某处粘贴验证码。但我怀疑你最好的选择是使用OAuth并存储令牌。

+1

是的,这是正确的。基本身份验证对我来说工作得很好,但就像你说的那样,它已被弃用。 API中公开的未经身份验证的数据不具有所有信息。我需要。 – super9 2011-05-10 04:46:24

+0

@Nai我觉得你被搞砸了。您可以使用公共Web表单,也可以使用OAuth之类的东西。但是,请注意,您只需为每个帐户跳过一次OAuth圈套,因为令牌永不过期,因此您只需缓存令牌即可。我会更新我的回复以包含该内容。 – 2011-05-10 05:45:09

+0

感谢您的确认。大声笑 – super9 2011-05-10 05:47:59

0

您可能会考虑查看Mechanize。它使浏览器活动自动化。

所以你可以给你的用户名/密码到你的脚本。然后脚本应该将这些凭据传递给http://twitter.com/#!/login

传统上,如果您从该网页手动登录,则响应将是另一个页面,其基础是您使用的凭据是否正确。

此处同样的事情:根据凭据是否正确,响应是另一页。

然后,您可以检查响应是“登录失败”页面还是“登录失败”页面,并从那里执行您需要执行的操作。

希望这有助于

1

我刚刚发现this bash script这样的作品,亲自测试,只是改变--ssl--sslv3

它基于mobile.twitter.com上使用的更简单的身份验证方法,您可以使用相同的原则使用urllib2re模块处理它。


否则,你可以考虑,靠在这样的网站http://www.supertweet.net/

SuperTweet.net提供了一个安全 机制在脚本 和其他Twitter的应用程序使用基本身份验证 与Twitter的API。只要登录了 通过Twitter授权MyAuth API代理SuperTweet.net应用 ,然后指定你的 的密码选择(不是你真正的推特 密码),你的应用程序可以 与http://api.supertweet.net API的使用。

编辑:我看到现在这个网站在How to work around Twitter OAuth?答案链接,如果你已经读到它忽略这部分的文章中引用。

1

如果您使用的是桌面或移动应用程序,那么您可以使用xAuth。从用户角度来看,它与获取原始OAuth凭证的基本认证相同,并且没有外部页面。请注意,您必须获得Twitter API小组的批准才能获得xAuth访问权限。