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()
}
})