2020 年 12 月更新: Twitter 最近推出了 API v2,与用户或应用身份验证相关的速率限制在 twitter official docs 中有更好的描述。
这意味着您可以使用 app auth 或 user auth 令牌访问此 API 函数。在某些请求中,您只能使用 user auth 令牌访问。
App Auth number:是您的应用在 15 分钟窗口内可以使用“app auth”令牌执行的最大请求数。
用户身份验证数:是您的应用在 15 分钟窗口内可以使用“用户身份验证”令牌执行的最大请求数。
您需要知道您的库/模块是如何获得身份验证的。 Source
编辑:
App Auth和User Auth是APItwitter can manage OAuth的两种方式。您可以使用 Twython 模块来处理这个 python 示例:
from twython import Twython
# App Auth
tw_auth = Twython(APP_KEY, APP_SECRET, oauth_version=2)
token = tw_auth.obtain_access_token()
twitter = Twython(APP_KEY, access_token=token)
通过其他方式,如果您想使用用户令牌进行身份验证:
from twython import Twython
# User Auth
tw_auth = Twython(APP_KEY, APP_SECRET)
token = tw_auth.get_authentication_tokens()
twitter = Twython(APP_KEY, APP_SECRET, auth['oauth_token'],
auth['oauth_token_secret'])
(...这最后一个方法is a bit longer,因为使用身份验证令牌您需要.get_authorized_tokens(prompted_pin) 进行新的 Twython 方法调用。这只是一个示例,表明您需要 4 个密钥/令牌而不是 2)
现在,如果您提出请求,则 15 分钟窗口的计数器取决于您的身份验证方式:
# Now you are authenticated with *App Auth* or *User Auth*
# Limits will be 450 for AppAuth and 180 for UserAuth in 15min window
results = twitter.search(q='StackOverflow',result_type='recent', count='10')
之所以存在这些差异,是因为并非所有 API 方法都支持仅应用程序身份验证。有些方法需要用户上下文。
编辑:
我可以在现实世界的场景中使用一个而不是另一个?
当然!看看这个chart about Twitter rate limits 并进行比较。有时您不能仅使用 appAuth 发出请求,例如与用户相关的操作。每个身份验证的限制都不同,如果你想要GET statuses/user_timeline,你可能更喜欢AppAuth,但如果你想要GET lists/members,你可能更喜欢UserAuth,因为它在速率限制方面有一些优势。