Third Party Integrations

AXS Integration

Rover includes support for integrating with the AXS ticketing SDK. This will allow your team to use AXS/FlashSeats identity information in the Rover platform.

The integration is indirect; you integrate both the AXS SDK and the Rover SDK into your app, and write a little bit of glue code.


Installing the Module

iOS

Add the "RoverAxs" package product module to your app using SwiftPM (review the Install page for details).

When initilizing the Rover SDK, add the import for RoverAxs then add AxsAssembler to the list of assemblers:

...
import RoverAxs
...

Rover.initialize(assemblers: [
  ...
  AxsAssembler(),
  ...
])

Next, provide the Rover SDK with an AXS user ID, and optionally with FlashSeats' member & mobile IDs. This should be done at app launch time (and also at AXS sign-in time, discussed below):

let userID = AXSSDKUserPreference.shared.userId
let linkedFSAccount = AXSSDKUserPreference.shared.linkedFSAccounts?[0] as? AXSSDKFSUser
let flashMemberID = linkedFSAccount?.memberId
let flashMobileID = linkedFSAccount?.mobileId

Rover.shared.axsAuthorizer.setUserID(userID, flashMemberID: flashMemberID, flashMobileID: flashMobileID)

These should also be done at AXS sign in time, like this:

NotificationCenter.default.addObserver(forName: .AXSSDKUserLogin, object: nil, queue: nil) { _ in
    // use the above code to set user ID and Flash IDs
}

NotificationCenter.default.addObserver(forName: .AXSSDKUserLogout, object: nil, queue: nil) { _ in
    // clear AXS IDs in Rover
    Rover.shared.axsAuthorizer.clearCredentials()
}

Android

Add the Rover AXS module to your Gradle dependencies alongside the other Rover modules:

implementation "io.rover.sdk:axs:4.9.0"

SDK Version

Be sure to match the version of the AXS module with the other Rover modules.

When initilizing the Rover SDK, add the import for Rover's AxsAssembler then add it to the list of assemblers:

...
import io.rover.sdk.axs.AxsAssembler
...

Rover.initialize(
    ...
    AxsAssembler(),
    ...
)

Next, provide the Rover SDK with an AXS user ID, and optionally with FlashSeats' member & mobile IDs. This should be done at app launch time (and also at AXS sign-in time, discussed below):

val userId = AXSSdk.auth.profile.profile?.id
val flashMemberId = AXSSdk.auth.profile.profile?.linkedFlashUsers?.get(0)?.memberId
val flashMobileId = AXSSdk.auth.profile.profile?.linkedFlashUsers?.get(0)?.mobileId

Rover.shared.axsAuthorizer.setUserId(userId = userId, flashMemberId = flashMemberId, flashMobileId = flashMobileId)

These should also done at AXS sign in time, like this:

AXSSdkAuth.getInstance().registerCallback(object : AuthCallback {
    override fun onSignedIn(profile: AXSUserProfile) {
        // use the above code to set user ID and Flash IDs
    }

    override fun onSignedOut() {
        // clear AXS IDs in Rover
        Rover.shared.axsAuthorizer.clearCredentials()
    }
})
Previous
Adobe Experience Platform