Augmented Reality Chat for Mobile Applications

The Future
in Your Hands!

Add Augmented Reality
to your apps today!

Sign up now

Add Great Features
to any platform!

Sign up now

QuickBlox is a cloud hosted
platform to simplify your
mobile app backend
development

Sign up now
QuickBlox Location Module

Add Maps and geolocation information to your App!

Connect your users to their local environment using the location module.

Location module is a hub connecting app users with each other and their environment over a Google Map. It stores GPS locations and local data and allows end users to literally 'see' each other on the map and engage with other users and objects.

  • Android
  • iOS
  • WP7
  • REST
// create point
// initialize the geodata object
QBLGeoData geoData = new QBLGeoData();
geoData.setStatus("I’m on Baker street, London!");
Location loc = QBLLocationDataSource.getInstance().getCurrentLocation();
geoData.setLatitude(loc.getLatitude());
geoData.setLongitude(loc.getLongitude());

// create new point
QBLocationService.postGeoData(geodata, this);
// create point
// initialize the geodata object
QBLGeoData *geoData = [[QBLGeoData alloc] init];
geoData.status = @"I’m on Baker street, London!";
CLLocation *loc =  [[QBLLocationDataSource instance] currentLocation];
geoData.latitude = loc.coordinate.latitude;
geoData.longitude = loc.coordinate.longitude;

// create new point
[QBLocationService postGeoData:geoData delegate:self]; [geoData release];
//Create connection
this.QBlox = new QuickBloxSDK_Silverlight.QuickBlox(AppID, OwnerID, this.AuthKey, this.AuthSecret, null, true, this.GetDeviceUniqueID());
//Setup event handler
this.QBlox.geoService.GeoServiceEvent += new QuickBloxSDK_Silverlight.Geo.GeoService.GeoServiceHandler(geoService_GeoServiceEvent);
//Add location
this.QBlox.geoService.AddGeoLocation(new GeoData(578, decimal.Parse("51,46546546"), decimal.Parse("122,6565465"), "I’m on Baker street, London!"));
//Get Location by identifier
this.QBlox.geoService.GetGeoLocation(12317);
 
void geoService_GeoServiceEvent(QuickBloxSDK_Silverlight.Geo.GeoServiceEventArgs Args)
{
    this.Dispatcher.BeginInvoke(new Action(() => {
        GeoData Location = (GeoData)Args.result;
    }
}
curl -X POST
-d "geo_data[latitude]=23
   &geo_data[longitude]=34
   &geo_data[status]=hello
   &token=fef1be67941e43d654987d21cd50a15fe28113f8"
http://api.quickblox.com/geodata
Learn more
QuickBlox Chat Module

Create in app conversations and social communities

Chat — all sorts of chat.

Make your App social. Engage and retain your users with Chat module. Features include: 1:1 Chat. Group chat. Attachments (photos, videos, location). Video chat. Location based chat. AR chat. Push notification alerts for offline users.

  • Android
  • iOS
  • WP7
// initialize the message object
QBChatMessage message = new QBChatMessage();
message.setText("Hi, Sam. What do you think about cinema today evening?");
message.setRecipientId(4);
message.setSenderId(78);

// send message
QBChatService.getInstance().setDelegate(this);
QBChatService.getInstance().sendMessage(message);
// initialize the message object
QBChatMessage *message = [[QBChatMessage alloc] init];
message.text = @"Hi, Sam. What do you think about cinema today evening?";
message.recipient_id = 4;
message.sender_id = 78;

// send message
[QBChatService instance].delegate = self;
[QBChatService instance] sendMessage:message];
[message release];
//Create connection
this.QBlox = new QuickBloxSDK_Silverlight.QuickBlox(AppID, OwnerID, this.AuthKey, this.AuthSecret, null, true, this.GetDeviceUniqueID());

//Setup event handler for GeoService events
this.QBlox.geoService.GeoServiceEvent += new GeoService.GeoServiceHandler(geoService_GeoServiceEvent);

//Post new Message 
this.QBlox.geoService.AddGeoLocation(new GeoData(UserID, 0, 0, MessageManager.CreateChatMessage("Hi, Sam. What do you think about cinema today evening?")));

// Event Handler for Background events
void QBlox_BackgroundEvent(string Command, object Result)
{
    this.Dispatcher.BeginInvoke(new Action(() =>
    {
        //Get from all geoData all chat Messages
        var res = MessageManager.GetChatMessages(QBlox.GeoData);
    }));
}
Learn more
QuickBlox Users Module

Know your users. Make life simple for them.

Easy authentication and social network integration.

Users module makes sure you know and retain your user base across all platforms. Authentication process made simple for users with Single Sign-On and integration with all popular platforms — Facebook, Twitter, Google, OpenID. Easy to integrate with your existing DB.

  • Android
  • iOS
  • WP7
  • REST
// sign in
// initialize the user object
QBUUser user = new QBUUser();
user.setOwnerID(18);        
user.setLogin("kevin");
user.setPassword("incredibleworld");

// authenticate
QBUsersService.authenticateUser(user, this);
// sign in
// initialize the user object
QBUUser *user = [[QBUUser alloc] init];
user.ownerID = 18;        
user.login = @"kevin";
user.password = @"incredibleworld"; 

// authenticate
[QBUsersService authenticateUser: user delegate:self];
[user release];
//Create connection
this.QBlox = new QuickBloxSDK_Silverlight.QuickBlox(AppID, OwnerID, this.AuthKey, this.AuthSecret, null, true, this.GetDeviceUniqueID());
//Setup Eventhandler 
this.QBlox.userService.UserServiceEvent += new QuickBloxSDK_Silverlight.users.UserService.UserServiceHandler(userService_UserServiceEvent);
//Create new user
this.QBlox.userService.AddUser(new User { Email = "vova@rsk-k1611.com", Password="12345", Username = "Rsk-k161" });
 
//Authenticate with this user
this.QBlox.userService.Authenticate("rsk-k161", "12345");
//Get User by identificator
this.QBlox.userService.GetUser(35, false);
 
//User service event handler
void userService_UserServiceEvent(QuickBloxSDK_Silverlight.users.UserServiceEventArgs Args)
{
    this.Dispatcher.BeginInvoke(new Action(() => {
        User user = (User)Args.result;
    }
}
curl -X 
POST -d "user[login]=kevin
        &user[password]=incredibleworld
        &user[owner_id]=18
        &token=7c1215fd0c682c8b4aa2f75979d618485297e5c0"
http://api.quickblox.com/users
Learn more
QuickBlox Content Module

Sent, stream, store, share and save content

Content storage, management and streaming —
all in one.

Content module enables your App and your users to store as much data as you want. Stream movies, securely store business data, allow users to send large file attachments to each other. Content is also a CMS — update your app's content without having to republish.

  • Android
  • iOS
  • REST
// upload file
Drawable image = getResources().getDrawable(R.drawable.userAvatar);
QBBlobsService.TUploadDataAsync(image, "avatar.jpeg", "image/jpeg", this);	
// upload file
NSData *imageData = 
	UIImagePNGRepresentation([UIImage imageNamed:@"avatar.jpeg"]);
[QBBlobsService TUploadDataAsync:imageData 
                         ownerID:ownerID
                        fileName:@"avatar.jpeg" 
                     contentType:@"image/jpeg"
                        delegate:self];	
curl -X
POST -d "blob[blob_owner_id]=23
        &blob[content_type]=image/jpeg
        &blob[name]=avatar.jpeg
        &blob[multipart]=0
        &token=ac1cac4219db11c3f0ba80e5fb388ed541457da7"
http://api.quickblox.com/blobs.xml
Learn more
QuickBlox Ratings Module

Rate, rank, and score anything in your app

High scores, leaderboards and star ratings —
made easy.

Ratings module provides a powerful API to enable competitive element in your App. Add a leaderboard with avatars, country flags, smooth scrolling. Highlight users result, show nearest competitors. Your own custom interface, no ads.

  • Android
  • iOS
  • REST
// show top 15
QBRatingsService.getTopRatings(25, 15, this);
// show top 15
[QBRatingsService topRatingsByGamemodeId:25 top:15 delegate:self];
// show top 15
curl -X 
GET -d "api.quickblox.com/gamemodes/25/top.15.xml?token={token}"
Learn more
QuickBlox Messages Module

Push notifications and messages to your users

Push notifications to your user base — even when your App is not running!

Messages module enables your App, your users and yourself to send push notifications and alerts to any user of your app at any time. Send messages via API or easy to use admin panel. Filter by user groups and set additional parameters.

  • Android
  • iOS
  • WP7
  • REST
// register subscription
QBMessagesService.TRegisterSubscription(this);

// initialize the message object
HashMap<String, String> message = new HashMap<String, String>();
message.put("data.message", "You have earned 5 extra points!");

// send push
QBMessagesService.TSendPush(message, "324, 567", true, this);
// register subscription
// initialize the message object
NSMutableDictionary *payload = [NSMutableDictionary dictionary];
NSMutableDictionary *aps = [NSMutableDictionary dictionary];
[aps setObject:@"Hello world!" forKey:QBMPushMessageAlertKey];
[payload setObject:aps forKey:QBMPushMessageApsKey];
QBMPushMessage *msg = [[QBMPushMessage alloc] initWithPayload:payload];
// send push
[QBMessagesService TSendPush:msg toUsers:@"324, 567" 
	environmentDevelopment:YES delegate:self];
string notificationHeader = "Simple Push Notification";
string textMesssage = "This is test notification. Please try it.";

//Create new Notifications with Title and Text
string notificationMessage = new PushNotification(PushNotificationType.Toast, notificationHeader,textMesssage, "/Main.xaml").ToBase64String();

//Create notification
//In order to make it work you need to put your message betweeen  "mpns=" and "26headers=Q29udGV..."
this.QBlox.pushNotificationService.CreateEvent(new int[] { SimpleUserId },"mpns=" + notificationMessage + "%26headers=Q29udGVudC1UeXBlLHRleHQveG1sLENvbnRlbnQtTGVuZ3RoLDIxOCxYLU5vdGlmaWNhdGlvbkNsYXNzLDIsWC1XaW5kb3dzUGhvbmUtVGFyZ2V0LHRvYXN0");
// create subscriptions (email, c2dm, apns, mpns channels)
// send push
curl -X 
POST -d "event[notification_type]=push
        &event[push_type]=apns
        &event[user][ids]=1,2,3,4,5,6
        &event[environment]=development
        &event[message]=payload=eyJhcHMiOnsiYWxlc
        &token=ba4727bab3aa1d822ac96e12dbdc2b01f0acce7a"
http://api.quickblox.com/events.xml
Learn more