【问题标题】:Difference between user and app-only auth?用户身份验证和仅应用身份验证之间的区别?
【发布时间】:2020-12-16 15:25:30
【问题描述】:

我已阅读 Twitter 文档,但一定遗漏了什么。

用户身份验证和仅应用身份验证具有不同的速率限制和功能,但我很难掌握每种身份验证的用例。

用户身份验证是否仅适用于“使用 Twitter 登录”风格的应用程序,因此因为您代表用户行事,所以您可以做更多事情?

什么是仅应用身份验证?我已经为我拥有的帐户手动生成了一个密钥 - 因为我在没有用户的情况下手动创建了这个密钥是只有那个应用程序吗?

非常困惑!任何帮助表示赞赏。

【问题讨论】:

    标签: twitter


    【解决方案1】:

    2020 年 12 月更新: Twitter 最近推出了 API v2,与用户或应用身份验证相关的速率限制在 twitter official docs 中有更好的描述。

    这意味着您可以使用 app authuser 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,因为它在速率限制方面有一些优势。

    【讨论】:

    • 如果你不介意的话,我想我需要一个两者的例子?
    • @Jon 我希望我的新示例解释可以帮助你
    • 谢谢@rutrus,但我仍有疑问。我可以在现实世界的场景中使用一个而不是另一个?
    • @Jon 我用你的问题完成了我的回答。如果它解决了您的问题,请将我的答案标记为accepted。谢谢。
    【解决方案2】:

    区别:

    用户身份验证:您可以向特定用户发送多少个请求(它必须是日志用户,但您发送请求以获取数据的任何用户)

    app auth:在 15 场胜利中,您总共可以发送多少个请求,这意味着不取决于特定用户。

    【讨论】:

    • 您能否明确“发送给特定用户”?
    • 假设我正在使用一种称为获取关注者(用户 ID)的方法,这意味着我正在为特定用户发送请求如果我将再次使用“用户 ID”发送另一个请求,这意味着该请求将计入特定用户! App auth 计算请求的数量不取决于您发送的用户(用户 id)
    猜你喜欢
    • 1970-01-01
    • 2010-09-11
    • 2011-04-13
    • 2016-04-22
    • 2020-08-25
    • 1970-01-01
    • 2018-12-23
    • 2013-06-23
    • 2016-04-12
    相关资源
    最近更新 更多