制作 Reddit 机器人时出现“invalid_grant 错误处理请求”

问题描述 投票:0回答:6

我正在制作一个 reddit 机器人,可以回复特定评论。

但是我收到此错误:invalid_grant 错误处理请求

我找不到解决方案。

这是我的代码,我使用Python。

import praw
import time
import config

def login():
    r = praw.Reddit(user_agent = "test bot",
                username = config.username,
                password = config.password,
                client_id = config.client_id,
                client_secret = config.client_secret)
    print("logged in")
    return r


cache = []

def run_bot(r):
    subreddit = r.subreddit("Test")
    comments = subreddit.get_comments(limit=25)
    for comment in comments:
        comment_text = comment.body.lower()
        if "xD" in comment_text and comment.id not in cache:
            comment.reply("xD")
            cache.append(comment.id)

while True:
    r = login()
    run_bot(r)
    time.sleep(5)

回溯:

    logged in
Traceback (most recent call last):
  File "xdbot.py", line 28, in <module>
    run_bot(r)
  File "xdbot.py", line 19, in run_bot
    comments = subreddit.get_comments(limit=25)
  File "D:\Programming\Phyton\lib\site-packages\praw\models\reddit\base.py", line 31, in __getattr__
    self._fetch()
  File "D:\Programming\Phyton\lib\site-packages\praw\models\reddit\base.py", line 66, in _fetch
    params=self._info_params)
  File "D:\Programming\Phyton\lib\site-packages\praw\reddit.py", line 367, in get
    data = self.request('GET', path, params=params)
  File "D:\Programming\Phyton\lib\site-packages\praw\reddit.py", line 451, in request
    params=params)
  File "D:\Programming\Phyton\lib\site-packages\prawcore\sessions.py", line 174, in request
    params=params, url=url)
  File "D:\Programming\Phyton\lib\site-packages\prawcore\sessions.py", line 108, in _request_with_retries
    data, files, json, method, params, retries, url)
  File "D:\Programming\Phyton\lib\site-packages\prawcore\sessions.py", line 93, in _make_request
    params=params)
  File "D:\Programming\Phyton\lib\site-packages\prawcore\rate_limit.py", line 32, in call
    kwargs['headers'] = set_header_callback()
  File "D:\Programming\Phyton\lib\site-packages\prawcore\sessions.py", line 134, in _set_header_callback
    self._authorizer.refresh()
  File "D:\Programming\Phyton\lib\site-packages\prawcore\auth.py", line 328, in refresh
    password=self._password)
  File "D:\Programming\Phyton\lib\site-packages\prawcore\auth.py", line 142, in _request_token
    payload.get('error_description'))
prawcore.exceptions.OAuthException: invalid_grant error processing request
python
6个回答
11
投票

按照此说明所述仔细检查您的凭据。

请记住,用户名是 your reddit 的帐户名,而不是机器人的名称。


3
投票

另一种可能性是您的机器人因登录尝试次数过多而超时。

检查此问题的简单方法是尝试手动登录 Reddit 并检查您是否被阻止。


2
投票

您可能对此帐户使用双因素身份验证。 您必须禁用它,或者通过冒号分隔的一次搅拌传递 2FA 代码和密码,如下所示:

r = praw.Reddit(user_agent = "test bot",
    username = config.username,
    password = f"{config.password}:{2FA-Code}",
    client_id = config.client_id,
    client_secret = config.client_secret)

请参阅文档: https://praw.readthedocs.io/en/latest/getting_started/authentication.html#two-factor-authentication


1
投票

我今天遇到了这个错误,原因是我使用我的 Reddit 帐户启用了双因素身份验证。

删除双因素身份验证使我的机器人/应用程序再次取得进步。

您也可以使用上面的建议来解决这个问题:https://stackoverflow.com/a/71905094/1465073


0
投票

此外,您的代码将无法工作,因为您使用“lower”命令并且您比较的字符串中有一个大写字母。


0
投票

如果您使用通过 OAuth 与第三方服务(“使用 Google 登录”或“使用 Apple 登录”)创建的 Reddit 帐户,有时似乎会弹出此错误。

您可能需要创建一个 Reddit 密码(与您的第 3 方服务分开)或完全断开这些服务。两者都可以在 Reddit 网站上完成这里

© www.soinside.com 2019 - 2024. All rights reserved.