diff --git a/discord/utils.py b/discord/utils.py index a097cfe72..2d19597f6 100644 --- a/discord/utils.py +++ b/discord/utils.py @@ -75,7 +75,7 @@ def parse_time(timestamp): return None -def oauth_url(client_id, permissions=None, server=None): +def oauth_url(client_id, permissions=None, server=None, redirect_uri=None): """A helper function that returns the OAuth2 URL for inviting the bot into servers. @@ -88,12 +88,17 @@ def oauth_url(client_id, permissions=None, server=None): permissions. server : :class:`Server` The server to pre-select in the authorization screen, if available. + redirect_uri : str + An optional valid redirect URI. """ url = 'https://discordapp.com/oauth2/authorize?client_id={}&scope=bot'.format(client_id) if permissions is not None: url = url + '&permissions=' + str(permissions.value) if server is not None: url = url + "&guild_id=" + server.id + if redirect_uri is not None: + from urllib.parse import urlencode + url = url + "&response_type=code&" + urlencode({'redirect_uri': redirect_uri}) return url