【问题标题】:zend_oauth_consumer + twitter limitzend_oauth_consumer + 推特限制
【发布时间】:2025-12-04 22:05:02
【问题描述】:

我有一个基于 Zend_Oath_​​Consumer 的小型 Twitter 应用程序。 用户允许我显示有关他的帐户的一些统计信息。

由于这个页面https://dev.twitter.com/docs/rate-limiting 每个用户应该有 350 个请求,但实际上所有用户共享 150 个请求/小时的限制。

Zend 是否发送未签名的请求?我在哪里可以搜索错误?

【问题讨论】:

    标签: zend-framework twitter


    【解决方案1】:

    检查来自 twitter 的响应标头:

    X-Warning: Invalid OAuth credentials detected.
    

    基于:

    确保在请求方法时检查返回的标头 不需要身份验证。如果您提出的要求包括 无效的 OAuth 信息 API 将执行以下两种操作之一:

    对于需要身份验证的方法,API 将返回错误 响应有关错误的更多信息。 例如一个 HTTP 响应正文出现 401 错误无法使用 OAuth 进行身份验证。

    对于可以请求未经身份验证的方法,API 将 处理请求,就像没有使用身份验证一样。这表示 该请求将计入​​未经身份验证的速率限制。如果这 发生了 API 将在其中包含以下标头 响应:X-警告:检测到无效的 OAuth 凭据。

    我怀疑您的问题更多地与 Oauth 不匹配有关。 Obtaining access tokens 页面可能会有所帮助。

    【讨论】:

    • 标头中没有 x 警告。 verify_credentials 提供有关登录用户的信息。重新创建应用程序没有帮助...
    【解决方案2】:

    解决了。正如预期的那样,这是我的错误......

    错了:
    $uri='http://api.twitter.com/1/users/show.json?screen_name='.$name;
    $client->setUri($uri)

    对:
    $uri='http://api.twitter.com/1/users/show.json;
    $client->setUri($uri);
    $client->setParameterGet($uri,array("screen_name"=>$name));

    %&$§/&%!

    【讨论】: