connectOAuth2WithOptions static method
- OAuth2ApiOptions apiOptions,
- [RestClientOptions clientOptions = const RestClientOptions()]
Create an instance of NyxxOAuth2
using the provided options.
Note that client.user.id
will contain Snowflake.zero if there no identify
scope.
Implementation
static Future<NyxxOAuth2> connectOAuth2WithOptions(OAuth2ApiOptions apiOptions, [RestClientOptions clientOptions = const RestClientOptions()]) async {
clientOptions.logger
..info('Connecting to the REST API via OAuth2')
..fine('Token: ${apiOptions.token}, Authorization: ${apiOptions.authorizationHeader}, User-Agent: ${apiOptions.userAgent}')
..fine('Plugins: ${clientOptions.plugins.map((plugin) => plugin.name).join(', ')}');
return _doConnect(apiOptions, clientOptions, () async {
final client = NyxxOAuth2._(apiOptions, clientOptions);
final information = await client.users.fetchCurrentOAuth2Information();
return client
.._application = information.application
.._user = information.user ?? PartialUser(id: Snowflake.zero, manager: client.users);
}, clientOptions.plugins);
}