用户和仅限应用程序的身份验证之间的区别?

Jon*_*Jon 6 twitter

我一直在阅读Twitter文档,但必须遗漏一些东西.

用户身份验证和仅限应用程序身份验证具有不同的速率限制和功能,但我很难处理每个用例的用例.

用户身份验证仅适用于"使用Twitter登录"样式应用程序,因此您代表用户执行操作可以执行更多操作吗?

什么是app only auth?我手动为我的帐户生成了一个密钥 - 因为我手动创建了这个密钥而没有用户只是该应用程序?

非常困惑!任何帮助赞赏.

Rut*_*rus 6

这意味着您可以使用应用程序身份验证用户身份验证令牌访问此API函数。在某些请求中,您只能使用用户身份验证令牌进行访问。

App Auth number:具有“ app auth”令牌的应用程序在15分钟的窗口中可以执行的最大请求数。

用户验证号:是您的应用在15分钟的窗口中可以使用“用户验证”令牌执行的最大请求数。

您需要知道您的库/模块如何获得身份验证。资源

编辑:App Auth和User Auth是API twitter可以管理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)
Run Code Online (Sandbox Code Playgroud)

通过其他方式,如果要使用用户令牌进行身份验证:

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'])
Run Code Online (Sandbox Code Playgroud)

(...最后一个方法要更长一些,因为使用身份验证令牌,您需要.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')
Run Code Online (Sandbox Code Playgroud)

存在这些差异是因为并非所有API方法都支持仅应用程序身份验证。一些方法需要用户上下文。

编辑:

我可以处理现实世界中的场景,在这些场景中您会使用一个场景?

当然!查看有关Twitter速率限制的图表并进行比较。有时您无法使用仅appAuth发出请求,例如与用户相关的操作。每个身份验证的限制是不同的,如果您想要GET状态/ user_timeline,则可能更喜欢AppAuth,但是如果您想要GET列表/成员,则可能更喜欢UserAuth,因为它在速率限制方面具有一定优势。