【问题标题】:Bypass Twitter OAuth绕过 Twitter OAuth
【发布时间】:2011-08-19 20:39:09
【问题描述】:

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

理想情况下,我不想费力设置用户/登录界面和后端,因为我所做的工作是出于内部目的。

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

谢谢

【问题讨论】:

    标签: python twitter twitter-oauth


    【解决方案1】:

    您会想要使用 Twitter 的 OOB 流程。这个答案很好地解释了这一点

    Twitter API - OOB Flow

    【讨论】:

    • 理想情况下,我希望该过程具有涉及用户的零交互。如果我没记错的话,这个流程仍然需要输入 PIN。
    • 您希望如何在未经过用户身份验证的情况下访问帐户?
    • 我想要一个单向的身份验证流程,无需用户的任何输入。我从来没有说过没有被用户认证。
    【解决方案2】:

    所以,仔细阅读一下,您有一个 twitter 帐户和一个密码,因为这是内部的,所以您不想使用需要用户与之交互的身份验证过程?

    OAuth 背后的理念是您永远不会知道用户的密码是什么;我同意,如果我对您尝试做的事情是正确的,那不是正确的事情。 JohnD建议的OOB Flow也有同样的问题。

    如果您确实有帐户/密码,那么您可以使用登录表单和推文表单直接处理向网站提交的内容。不幸的是,这意味着您无权访问 API(他们去年通过 API 进行了基本身份验证)——这取决于您尝试执行的操作,这可能是也可能不是问题。

    编辑:

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

    【讨论】:

    • 是的,没错。基本身份验证对我来说效果很好,但就像你说的那样,它已被弃用。 API 中公开的未经身份验证的数据并不包含所有信息。我需要的。
    • @Nai 我觉得你完蛋了。您可以使用公共 Web 表单,也可以使用 OAuth 之类的东西。但是请注意,您只需为每个帐户跳过一次 OAuth 循环,因为令牌永不过期,因此您可以缓存令牌。我会更新我的回复以包括这一点。
    【解决方案3】:

    我刚刚发现 this bash script 有效,亲自测试,只需将 --ssl 更改为 --sslv3

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


    否则你可以考虑靠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? 的答案中,如果你已经阅读过它,请忽略这部分。

    【讨论】:

      【解决方案4】:

      如果您使用的是桌面或移动应用程序,则可以使用xAuth。从用户的角度来看,它与获取原始 OAuth 凭据的基本身份验证相同,并且无需访问外部页面。请注意,您必须获得 Twitter API 团队的批准才能获得 xAuth 访问权限。

      【讨论】:

        【解决方案5】:

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

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

        通常,如果您从该网页手动登录,则响应将是另一个页面,具体取决于您使用的凭据是否正确。

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

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

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2017-10-23
          • 2016-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-14
          • 1970-01-01
          相关资源
          最近更新 更多