如何在本地测试 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 存储在数组中?

如何通过 Twitter API 找人?

如何在 Twitter API 中使用获取帐户/设置?

如何在 Python 中使用新的 Twitter API 1.1 搜索? [关闭]

如何在不使用 Twitter API 1.1 的情况下检索 Twitter user_timeline

如何在 iOS 中使用 Twitter API 1.1 获取 Token