[Python] Bad request while accessing the Authorization URL for PRAW Reddit API wrapper

Discussão em 'Python' iniciado por Stack, Maio 24, 2025.

  1. Stack

    Stack Membro Participativo

    I'm trying to Authenticate via OAuth using Code Flow method for my python script. while do so, I'm getting following message while accessing the obtained authorization url - "bad request (reddit.com) you sent an invalid request — that option is not valid."

    Here is my code: reddit_OAuth2.py

    class OAuthRedditAccess():
    def __init__(self, client_id, client_secret, user_agent, redirect_url):
    self.user_agent = user_agent
    self.client_id = client_id
    self.client_secret = client_secret
    self.redirect_url = redirect_url

    reddit_read_only = praw.Reddit(client_id=self.client_id, client_secret=self.client_secret, user_agent=self.user_agent)
    print("read only client instatiated.")


    def OAuth2(self):
    reddit = praw.Reddit(client_id=self.client_id,
    client_secret=self.client_secret,redirect_uri=self.redirect_url, user_agent=self.user_agent)
    _auth_url = reddit.auth.url(scopes=["identity"], state="...", duration="permanent")
    print("Authorization url is ",_auth_url)


    main.py

    if __name__ == '__main__':
    user_agent = "script:producer_reddit_api:v1.0 (by /u/my_id)"
    redirect_url = "http://localhost:8080"
    client_id = os.environ.get("client_id")
    client_secret = os.environ.get("client_secret")

    OAuth_obj = OAuthRedditAccess(client_id, client_secret, user_agent, redirect_url)
    OAuth_obj.OAuth2()


    Articles I'm referring to: https://praw.readthedocs.io/en/stable/getting_started/authentication.html https://praw.readthedocs.io/en/stable/getting_started/configuration/environment_variables.html

    Note: My client_id and client_secret are correct as i've validated using below code and it gives me correct username

    reddit = praw.Reddit(
    client_id = <my_client_id>,
    client_secret=<my_secret_id>,
    password=<password+2FA_auth_code>,
    user_agent = "script:producer_reddit_api:v1.0 (by /u/my_id)",
    username=<my_username>)

    print(reddit.user.me())

    Continue reading...

Compartilhe esta Página