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 both:
      • Messaging
      • Real Time Data Streaming
  • 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 UAChannelUpdatedEvent. This is to ensure the channel ID is set immediately once it’s available.

// Observe the notification center event `UAChannelUpdatedEvent`
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.updatePilgrimUserID), name:NSNotification.Name(rawValue:UAChannelUpdatedEvent), object: nil)

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

// In the notification callback set the userID on your Pilgrim Manager instance
NSString \*channelID = [[UAirship push] channelID];

if (channelID) {
    [FSQPPilgrimManager.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 PilgrimAirshipReceiver extends AirshipReceiver {
    @Override
    protected void onChannelCreated(@NonNull Context context, @NonNull String channelId) {
        PilgrimUserInfo userInfo = new PilgrimUserInfo();
        userInfo.setUserId(channelId);
        PilgrimSdk.get().setUserInfo(userInfo);
    }

Configuring the Foursquare Integration

In Airship:

  1. Go to Settings » Project Configuration and click Manage for Partner Integrations.
  2. Select Foursquare.
  3. Click Configure for the inbound integration and follow the onscreen instructions to: