如何在本地测试 twitter API?
Posted
技术标签:
【中文标题】如何在本地测试 twitter API?【英文标题】:How to test the twitter API locally? 【发布时间】:2010-12-16 03:35:52 【问题描述】:我正在尝试编写一个通过 OAuth 使用 Twitter 的 Web 应用程序。
我将本地服务器作为“localhost”运行,所以我需要回调 URL 类似于 http://localhost/something/twitter.do,但 Twitter 不喜欢这样:不是有效的 URL 格式
我可能会做很多测试,但是一旦我用我的用户名批准了我的应用程序,我就不能再测试了,可以吗?我应该创建多个 Twitter 帐户吗?或者您可以删除一个应用并重新执行吗?
【问题讨论】:
【参考方案1】:您可以使用127.0.0.1
代替localhost
。
您可以从同一个 Twitter 帐户授权您的应用多次,而无需撤销它。但是,authenticate 操作只会提示允许/拒绝一次,并且所有后续 authenticate 请求只会通过,直到您撤销权限。
【讨论】:
【参考方案2】:Twitter 对 API GET 调用的“速率限制”基于调用者的 IP 地址。因此,您可以使用相同的 IP 地址从您的服务器测试您的应用程序,并获得(一旦获得批准)每小时 15,000 次 API 调用。这意味着您可以使用许多不同的用户名来访问您的应用,只要您批准的 IP 地址保持不变。
当您向 Twitter 发送电子邮件以要求提高您的速率限制时,您也可以要求提高适用于您的 Twitter 用户名。
我相信 Twitter 需要您(如果您需要更改您的 IP 地址或更改使用该应用的用户名)发送另一个请求,要求提高该新 IP 地址或用户名的速率限制。但是,根据我的经验,Twitter 很快就解决了这些请求(可能不到 48 小时?)。
【讨论】:
【参考方案3】:这样使用 对于网站:http://127.0.0.1 对于回调 URL:http://127.0.0.1/home 或您的任何页面地址,例如http://127.0.0.1/index
【讨论】:
【参考方案4】:您是否尝试过创建自己的缓存机制?您可以获取初始查询的结果,将其缓存在本地线程上,并给定到期时间,然后从 Twitter 刷新。这将允许您根据 Twitter 数据测试您的应用,而不会招致调用惩罚。
【讨论】:
【参考方案5】:还有另一种解决方案(而是一种解决方法),它要求您编辑您的 hosts
文件。
这是在 linux 机器上执行此操作的方法:
以root
的身份打开您的/etc/hosts
文件。为此,您可以打开一个终端并输入类似sudo vi /etc/hosts
的内容。
选择一个不存在的域作为您的本地地址,并将其添加到您的hosts
文件中。例如,您需要在最后添加类似于以下内容的内容。
127.0.0.1 localhost.cep # this domain name was accepted.
所以,差不多就是这样。将您的浏览器指向localhost.cep
现在会将您带到您的本地服务器。希望对:)
【讨论】:
【参考方案6】:在回答 (1) 时,请参阅此主题,特别是 episod 的回复:https://dev.twitter.com/discussions/5749
无论您在 dev.twitter.com 上的应用管理页面中放置什么回调 URL(只要您不使用 localhost)。您提供“真实”回调 URL 作为 OAuth 令牌请求的一部分。
【讨论】:
【参考方案7】:1.) 不要使用本地主机。那没有帮助。为什么不建立另一个服务器实例或从 slicehost 获取测试 vm slice?
2.) 您可能需要一堆不同的用户帐户和几个不同的 OAuth 密钥/秘密凭据来进行测试。
不过,您的做法是正确的:请通过 your twitter account's connections setting 测试撤销应用程序的凭据。这应该优雅地发生。您可能希望在访问令牌信息旁边存储一个状态值,以便将令牌标记为已撤销。
【讨论】:
以上是关于如何在本地测试 twitter API?的主要内容,如果未能解决你的问题,请参考以下文章
Twitter API - 如何将 JSON 存储在数组中?
如何在 Python 中使用新的 Twitter API 1.1 搜索? [关闭]