en-US/about_RedditApplication.help.txt

TOPIC
    about_redditapplication
 
SHORT DESCRIPTION
    Describes the RedditApplication Class
 
LONG DESCRIPTION
    The `RedditApplication` class is used to define the parameters of an
    application which access the Reddit API. The `RedditApplication` class
    becomes embedded in the `RedditOAuthToken` class after an OAuth Access token
    is requested. A single application may be used by multiple users or by a
    single user multiple times. Each user requires their own Access Token and a
    single user can have multiple Access Token. The `RedditApplication` class
    makes it possible to define an application’s parameters once and then
    reuse it multiple times in multiple Access Tokens for multiple users. A
    `RedditApplication` class houses the Client ID and Client Secret as defined
    at https://ssl.reddit.com/prefs/apps . The `Name` and `Description` of the
    `RedditApplication` do not need to match what is registered with Reddit.
    They are provided along with the `GUID` property as a convenience to
    identify your applications.
    A `RedditApplication` is required to request an OAuth Access Token with `Request-RedditOAuthToken`.
    You can create `RedditApplication` objects using the `New-RedditApplication` function
    The `RedditApplication` class is imported automatically when you import the
    PSRAW module.
 
CONSTRUCTORS
RedditApplication()
    The default constructor will always throw an
    `System.NotImplementedException` exception. It is included because
    PowerShell v5 classes behave oddly when a default constructor is missing
    when other constructors are defined. This constructor cannot be used to
    create an instance of the class.
 
    [RedditApplication]::new()
 
RedditApplication(Object Object)
    This constructor converts the provided `Object` to a `HashTable` and passes
    it to the `_init` method. This constructor provides `Object` to
    `RedditApplication` conversion.
 
    [RedditApplication]::new([Object]$Object)
 
RedditApplication(System.Management.Automation.PSObject PSObject)
    This constructor converts the provided `PSObject` to a `HashTable` and
    passes it to the `_init` method. This constructor provides `PSObject` to
    `RedditApplication` conversion.
 
    [RedditApplication]::new([System.Management.Automation.PSObject]$PSObject)
 
RedditApplication(System.Collections.Hashtable InitHash)
    This constructor passes the provided `HashTable` to the `_init` method. This
    constructor provides `HashTable` to `RedditApplication` conversion.
 
    [RedditApplication]::new([System.Collections.Hashtable]$InitHash)
 
RedditApplication(String Name, String Description, Uri RedirectUri, String UserAgent, RedditApplicationType Type, Guid GUID, String ExportPath, RedditOAuthScope[] Scope, System.Management.Automation.PSCredential ClientCredential, System.Management.Automation.PSCredential UserCredential)
    This constructor converts the arguments to a `HashTable` and passes them to
    the `_init` method.
 
    [RedditApplication]::new(
        [String]$Name,
        [String]$Description,
        [Uri]$RedirectUri,
        [String]$UserAgent,
        [RedditApplicationType]$Type,
        [Guid]$GUID,
        [String]$ExportPath,
        [RedditOAuthScope[]]$Scope,
        [System.Management.Automation.PSCredential]$ClientCredential,
        [System.Management.Automation.PSCredential]$UserCredential
    )
 
PROPERTIES
AuthBaseURL
    The `AuthBaseURL` static property is default base URL used to request
    authorization codes from reddit.
 
    Name: AuthBaseURL
    Type: String
    Hidden: False
    Static: True
 
ClientCredential
    The `ClientCredential` property contains a `PSCredential` object where the
    Username is the Application's Client ID and the password is the Client
    Secret as configured in reddit. For `Installed` applications, the password
    should be empty.
 
    Name: ClientCredential
    Type: System.Management.Automation.PSCredential
    Hidden: True
    Static: False
 
ClientID
    The `ClientID` property is the Client ID as provided by reddit when the
    application is registered. This should match the username of the
    `ClientCredential`. Changing this is not recommended.
 
    Name: ClientID
    Type: String
    Hidden: False
    Static: False
 
Description
    A description for the application used for convenience of identifying and
    documenting the `RedditApplication` object only.
 
    Name: Description
    Type: String
    Hidden: False
    Static: False
 
ExportPath
    This is the path the `RedditApplication` was last imported from or where you
    wish to export it to. It is provided for interaction with
    `Import-RedditApplication` and `Export-RedditApplication`. This should be
    the literal path of the file.
 
    Name: ExportPath
    Type: String
    Hidden: False
    Static: False
 
GUID
    A `Guid` used to help identify the application. This is provided for
    convenience and is not sent to or required by the API. In situations where
    multiple Applications may be in use, this GUID can be used to identify if
    the same applications is in use on separate `RedditOAuthToken` objects.
 
    Name: GUID
    Type: Guid
    Hidden: False
    Static: False
 
Name
    The name of the application used for convenience of identifying the
    `RedditApplication` object only.
 
    Name: Name
    Type: String
    Hidden: False
    Static: False
 
RedirectUri
    The Redirect URI for the application. This must match the Redirect URI
    registered for the application on Reddit. This is required byt Reddit's
    OAuth to request both Authorization codes and Access Tokens.
 
    Name: RedirectUri
    Type: Uri
    Hidden: False
    Static: False
 
Scope
    The Scope property has been deprecated as all grant flows supported by the
    module no longer require a scope.
 
    Name: Scope
    Type: RedditOAuthScope[]
    Hidden: True
    Static: False
 
ScriptUser
    The `ScriptUser` property is the Reddit username used for Script
    Applications. This should match the username in the `UserCredential`
    property
 
    Name: ScriptUser
    Type: String
    Hidden: False
    Static: False
 
Type
    The `Type` property is one of the available `RedditApplicationType`
    enumerator options. This should match the application type registered on
    Reddit. for more information see `about_RedditApplicationType`
 
    Name: Type
    Type: RedditApplicationType
    Hidden: False
    Static: False
 
UserAgent
    The `UserAgent` property contains the text that will be sent as the
    `User-Agent` header to the Reddit API. Reddit requires applications
    accessing their API provide a meaningful user agent. The following
    convention is what they recommend.
 
    <platform>:<app ID>:<version string> (by /u/<reddit username>)
 
    Example:
 
    windows:MyPSRAW-App:v1.2.3 (by /u/markekraus)
 
    For more details see https://github.com/reddit/reddit/wiki/API#rules
 
    Name: UserAgent
    Type: String
    Hidden: False
    Static: False
 
UserCredential
    The `UserCredential` property contains a `PSCredential` object where the
    username and passwords are the Reddit Username and password used for
    `Script` Applications. For `WebApp` and `Installed` apps, this is not
    required and will be ignored.
 
    Name: UserCredential
    Type: System.Management.Automation.PSCredential
    Hidden: True
    Static: False
 
METHODS
_init(System.Collections.Hashtable InitHash)
    The `_init` hidden method is used by the constructors to initialize the
    class. This way class initialization code can be maintained in a single
    method instead of each individual constructor. It performs several checks to
    ensure that required properties are provided and will throw
    `System.ArgumentException` exceptions if the requirements are not met.
 
    Name: _init
    Return Type: Void
    Hidden: True
    Static: False
    Definition: hidden Void _init(System.Collections.Hashtable InitHash)
 
GetClientSecret()
    The `GetClientSecret` method is used to retrieve the plaintext Client Secret
    which is stored as the password of the `ClientCredential`. This is used in
    various functions to retrieve the Client Secret in order to authenticate the
    application with OAuth.
 
    Name: GetClientSecret
    Return Type: String
    Hidden: False
    Static: False
    Definition: String GetClientSecret()
 
GetUserPassword()
    The `GetUserPassword` method is used to retrieve the plaintext user password
    which is stored as the password of the `UserCredential`. This is used in
    various functions to retrieve the user password in order to authenticate
    script applications with OAuth.
 
    Name: GetUserPassword
    Return Type: String
    Hidden: False
    Static: False
    Definition: String GetUserPassword()
 
EXAMPLES
Create WebApp RedditApplication
    Import-Module PSRAW
    $ClientCredential = Get-Credential
    $App = [RedditApplication]@{
         Name = 'TestApplication'
         Description = 'This is only a test'
         RedirectUri = 'https://localhost/'
         UserAgent = 'windows:PSRAW-Unit-Tests:v1.0.0.0'
         ClientCredential = $ClientCredential
         Type = 'WebApp'
     }
 
Create Script RedditApplication
    Import-Module PSRAW
    $UserCredential = Get-Credential
    $ClientCredential = Get-Credential
    $App = [RedditApplication]@{
        Name = 'TestApplication'
        Description = 'This is only a test'
        RedirectUri = 'https://localhost/'
        UserAgent = 'windows:PSRAW-Unit-Tests:v1.0.0.0'
        Scope = 'read'
        ClientCredential = $ClientCredential
        UserCredential = $UserCredential
        Type = 'Script'
    }
 
Create Installed RedditApplication
    Import-Module PSRAW
    $ClientCredential = Get-Credential
    $App = [RedditApplication]@{
         Name = 'TestApplication'
         Description = 'This is only a test'
         RedirectUri = 'https://localhost/'
         UserAgent = 'windows:PSRAW-Unit-Tests:v1.0.0.0'
         ClientCredential = $ClientCredential
         Type = 'Installed'
     }
 
SEE ALSO
    about_RedditApplicationType
    about_RedditOAuthDuration
    about_RedditOAuthResponseType
    about_RedditOAuthScope
    about_RedditOAuthToken
    New-RedditApplication
    Request-RedditOAuthToken
    https://github.com/reddit/reddit/wiki/API
    https://github.com/reddit/reddit/wiki/OAuth2
    https://www.reddit.com/prefs/apps
    https://www.reddit.com/wiki/api
    https://psraw.readthedocs.io/