Foursquare

AIRSHIP VERIFIED INTEGRATION

This integration is maintained by Foursquare. Please contact Foursquare for support.

Airship can easily integrate with Foursquare’s Movement SDK by associating channels with Foursquare user identifiers. This allows a single user to be consistently identified across both platforms.

Foursquare Integration Requirements

  • Accounts

    1. Foursquare
    2. Airship — Must include messaging
  • Airship project

    • The Airship SDK must use the same user identity as the Foursquare SDK.

Associating the Foursquare Movement user identifiers with Airship channels can be accomplished with the following code.

Client Code: iOS

On iOS, associating a Foursquare Movement user identifier with an Airship channel should be done inside a callback triggered by the channel created event. This is to ensure the channel ID is set immediately once it’s available.

// Observe the notification center event `ChannelCreated`
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.updateUserID), name:AirshipNotifications.ChannelCreated.name, object: nil)

// In the notification callback set the userID on your Movement SDK Manager instance
func updateUserID() {
     if let channelID = UAirship.push().channelID, let _ = FSQMovementSdkManager.shared().userInfo {
         FSQMovementSdkManager.shared().userInfo!.setUserId(channelID)
     }
 }
// Observe the notification center event `ChannelCreated`
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(updateChannel)
                                             name:UAirshipNotificationChannelCreated.name
                                           object:nil];

// In the notification callback set the userID on your Movement SDK Manager instance
NSString channelID = [[UAirship push] channelID];

if (channelID) {
    [FSQMovementSdkManager.sharedManager.userInfo setUserId:channelID];
}

Client Code: Android

On Android, associating a Foursquare Movement user identifier with an Airship channel should be done inside a class extending AirshipReceiver that implements its onChannelCreated function. This is to ensure the channel ID is set immediately once it’s available.

private class MovementAirshipIntegration : AirshipChannelListener {
    override fun onChannelCreated(channelId: String) {
        val userInfo = UserInfo().apply {
            setUserId(channelId)
        }

        MovementSdk.get().setUserInfo(userInfo, persisted = true)
    }
}

Configuring the Foursquare Integration

In Airship:

  1. Go to Settings.
  2. Under Project Configuration, select Manage for Partner Integrations.
  3. Select Foursquare.
  4. Select Configure for the inbound integration and follow the onscreen instructions to: