Apple-AppStoreConnect

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

# NAME

Apple::AppStoreConnect - Apple App Store Connect API client

# VERSION

Version 0.12

# SYNOPSIS

    use Apple::AppStoreConnect;

    my $asc = Apple::AppStoreConnect->new(
        issuer => $API_key_issuer,  # API key issuer ID
        key_id => $key_id,          # App Store Connect API key ID
        key    => $private_key      # Encrypted private key (PEM)
    );
    
    # Custom API request
    my $res = $asc->get(url => $url);

    # List apps / details convenience function
    $res = $asc->get_apps();                                          # List of apps
    $res = $asc->get_apps(id => $app_id);                             # App details
    $res = $asc->get_apps(id => $app_id, path => 'customerReviews');  # App reviews

# DESCRIPTION

Apple::AppStoreConnect provides basic access to the Apple App Store Connect API.

Please see the [official API documentation](https://developer.apple.com/documentation/appstoreconnectapi)
for usage and all possible requests.

You can also use it with the ["Apple Store Server API"](#apple-store-server-api).

# CONSTRUCTOR

## `new`

      my $asc = Apple::AppStoreConnect->new(
          key_id      => $key_id,
          key         => $private_key?,
          key_file    => $private_key_pem?,
          issuer      => "57246542-96fe-1a63-e053-0824d011072a",
          scope       => \@scope?,
          timeout     => $timeout_sec?,
          expiration  => $expire_secs?,
          ua          => $lwp_ua?,
          curl        => $use_curl?,
          jwt_payload => {%extra_payload}
      );
    

Required parameters:

- `key_file` : The encrypted App Store Connect API private key file that you
create under **Users and Access** -> **Keys** on the App Store Connect portal. On the portal
you download a PKCS8 format file (.p8), which you first need to convert to the PEM format.
On a Mac you can convert it simply:

        openssl pkcs8 -nocrypt -in AuthKey_<key_id>.p8 -out AuthKey_<key_id>.pem

- `key` : Instead of the `.pem` file, you can pass its contents directly
as a string.
- `key_id` : The ID of the App Store Connect API key created on the App Store
Connect portal  (**Users and Access** section).
- `issuer` : Your API Key **issuer ID**. Can be found at the top of the API keys
on the App Store Connect Portal (**Users and Access** section).

Optional parameters:

- `scope` : An arrayref that defines the token scope. Example entry:
`["GET /v1/apps?filter[platform]=IOS"]`.
- `timeout` : Timeout for requests in secs. Default: `30`.
- `ua` : Pass your own [LWP::UserAgent](https://metacpan.org/pod/LWP%3A%3AUserAgent) to customise the agent string etc.
- `curl` : If true, fall back to using the `curl` command line program.
This is useful if you have issues adding https support to [LWP::UserAgent](https://metacpan.org/pod/LWP%3A%3AUserAgent), which
is the default method for the API requests.
- `expiration` : Token expiration time in seconds. Tokens are cached until
there are less than 10 minutes left to expiration. Default: `900` - the API will
not accept more than 20 minutes expiration time for most requests.
- `jwt_payload` : Extra items to append to the JWT payload. Allows extending
the module to support more/newer versions of Apple APIs. For example, for the Apple
Store Server API you'd need to add:

        jwt_payload => {bid => $bundle_id}

# METHODS

## `get`

    my $res = $asc->get(
        url    => $url,
        raw    => $raw?,
        params => \%query_params?
    );

Fetches the requested API url, by default, it will use [JSON](https://metacpan.org/pod/JSON) to decode it
directly to a Perl hash, unless you request `raw` result as a string.

Requires [LWP::UserAgent](https://metacpan.org/pod/LWP%3A%3AUserAgent), unless the `curl` option was set.

If the request is not successful, it will `die` throwing the `HTTP::Response->status_line`.



( run in 2.240 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )