Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

Version 1 Next »

These instructions are only applicable to users who do not have a persistent API key. Persistent API keys do not expire and can be included in the Info.plist file.

1. Obtaining an API Key

When using the SDK for the first time, you need to obtain an API key. To do this, follow the steps below:

  1. Create an instance of NMApiCredentials with mandatory parameters (account ID, password, email ID, service ID) with one of the methods provided.

  2. Call the - (void)obtainApiKeyWithCredentials:completion: method, to request a new API Key. A result is expected to come in the completion block.

Example:

NMApiCredentials *credentials = [NMApiCredentials alloc] initWithAccountId:@"yourAccountId"
        emailId:@"yourEmail"
        password:@"yourPAssword"
        serviceId:@(1234);

    [navmiiSDK obtainApiKeyWithCredentials:credentials completion:^(NSString * _Nullable apiKey) {
        // Store the received API key securely
        // Next time pass the key to the SDK via
        // [navmiiSDK setApiKey:apiKey];
    }];
});

2. Storing the API Key Securely

After obtaining the API key, store it securely within your app. Keychain will do the best. This ensures the key is available for use in future SDK initialization without needing to request a new key every time.

3. Setting the API Key

When initializing the SDK, pass the stored API key to the NMConfigurationSettings. To update the key after the SDK has been initialized, use the - (void)setApiKey: method:

NSString *storedApiKey = // Retrieve the stored API key
[navmiiSDK setApiKey:storedApiKey];

4. Handling API Key Expiration

The API key can expire, causing the SDK methods requiring authentication to return an ApiKeyExpired status. There are two ways to handle this situation:

  1. For SDK methods explicitly called by users that require authentication, handle the ApiKeyExpired status by obtaining a new API key as described in step 1.

  2. For methods that implicitly make online requests, set up a listener to be notified of API key expiration. Follow the steps below:

    1. Create a class that extends NMApiKeyExpiredListener.

    2. Implement the - (void)onApiKeyExpired method to handle the expiration event.

    3. Add the listener using the - (void)addApiKeyExpiredListener method.

    4. When the listener is triggered, obtain a new API key as described in step 1.

Example:

@interface MyApiKeyExpiredListener: NSObject<NMApiKeyExpireListener>
@end

@implementation MyApiKeyExpiredListener

- (void)onApiKeyExpired {

}

@end

MyApiKeyExpiredListener *listener = [[MyApiKeyExpiredListener alloc] init];
[navmiiSDK addApiKeyExpiredListener: listener];
  1. The listener object retains when passed to the method. It you need to remove it when it's no longer needed using the - (void)removeApiKeyExpiredListener: method:

[navmiiSDK addApiKeyExpiredListener: listener];

5. Checking the API Key expiration status

The API Key expiration status can be checked with - (BOOL)isApiKeyExpired method.

BOOL isApiKeyExpired = [navmiiSDK isApiKeyExpired];
  • No labels