Как я могу проверить действительность учетных данных с помощью praw - PullRequest
2 голосов
/ 30 мая 2020

Итак, я пытаюсь создать бота, который извлекает случайные URL-адреса сообщений из сабреддита и хочет, чтобы он проверял, действительны ли учетные данные для входа в систему, поэтому вот что я придумал:

import praw
import pandas as pd
import datetime as dt

username = input("Your user name:\n")
password = input("Your Password:\n")



reddit = praw.Reddit(client_id='xxxxxxxxxxxxx', \
                     client_secret='xxxxxxxxxxxxxxxxxxxxxxxx', \
                     user_agent='Fetch', \
                     username=username, \
                     password=password)

if reddit == thats where i dont know what to type
    submission = reddit.subreddit("gtaonline").random()
    print(submission.url)

else:
    print("Enter valid credentials")
    quit()

1 Ответ

2 голосов
/ 31 мая 2020

Вы можете использовать reddit.user.me(). Этот метод дает вам аутентифицированного пользователя, что в качестве побочного эффекта заставляет экземпляр Reddit использовать учетные данные.

Если учетные данные действительны, возвращается экземпляр Redditor. Если ваши учетные данные недействительны, его вызов приведет к prawcore.ResponseException.

Вы можете использовать этот факт для проверки своих учетных данных:

from prawcore import ResponseException

def authenticated(reddit):
    """Determine whether the given Reddit instance has valid credentials."""
    try:
        reddit.user.me()
    except ResponseException:
        return False
    else:
        return True

Если вы определите эту функцию в своем скрипте, ваше состояние становится

if authenticated(reddit):
...