Authentication
In order to use the abilities of TapTalk.io in your client app, a TapTalk instance must be initiated in each client app through user authentication with TapTalk.io server. An authenticated user account allows the instance to communicate and interact with the server. The following explains how to authenticate with the server.
TapTalk.io's Authentication Flow
When the user logs in to your application, your backend server will have to request an Authentication Ticket from TapTalk.io server. TapTalk.io server will return the requested Authentication Ticket and user ID to your backend server. The client application (iOS or Android) can then retrieve the ticket from your backend server to implement TapTalk.io's SDK by initializing the SDK using the obtained Authentication Ticket.
You can see the implementation for TapTalk.io's Mobile SDK by accessing iOS SDK Authentication or Android SDK Authentication.
IMPORTANT!
Server Key ID and Server Key Secret will be used to construct a request and add as a HTTP Header. To construct a request, please format your generated Server Key ID and Server Key Secret and wrap it to Base64, so the format will be like this:
encodeToBase64(SERVER_KEY_ID:SERVER_KEY_SECRET) *don't forget to add colon (:) between Server Key ID and Server Key Secret
Then, put the base64 string on your HTTP Header Field with key “Server-Key” and then construct URL request and parameter for the request.

Request Auth Ticket

Request auth ticket on behalf of the specified user, passing along the user's data to be saved to chat server. The auth ticket can be used to request an access token from the chat server. An auth ticket is valid for 1 hour before it expires.
The xcUserID is used to identify an existing user. If it does not exist yet, the user will be saved as a new user.
POST
1
BASE_URL/v1/server/auth_ticket/request
2
3
example:
4
https://taptalk.io/v1/server/auth_ticket/request
Copied!

Request

Field
Type
Description
userIPAddress
string
(101) The user's IP address.
userAgent
string
(102) The user agent.
userPlatform
string
(103) The user's platform.
Values: "android", "ios", or "web"
userDeviceID
string
(104) The user's device ID.
xcUserID
string
(105) The user ID from customer's server (maximum 50 characters).
fullName
string
(106) The user's full name.
email (optional)
string
(107) The user's email address.
phone (optional)
string
(108) The user's phone, should start with country code.
username (optional)
string
(109) The user's username.
photoThumbnailURL (optional)
string
(110) The user's thumbnail picture image URL.
photoFullsizeURL (optional)
string
(111) The user's fullsize picture image URL.
userRoleCode (optional)
string
(112) The user's role code.
Request Example
1
{
2
"userIPAddress": "182.253.177.234",
3
"userAgent": "AdvancedRestClient/12.1.14",
4
"userPlatform": "android",
5
"userDeviceID": "aaaa-bbbb-cccc-dddd",
6
"xcUserID": "6",
7
"fullName": "Jony",
8
"email": "[email protected]",
9
"phone": "08991234567",
10
"username": "jony",
11
"photoThumbnailURL": "http://www.example.com/photo/thumb/6.jpg",
12
"photoFullsizeURL": "http://www.example.com/photo/full/6.jpg",
13
"userRoleCode": "user"
14
}
Copied!

Success 200

Field
Type
Description
userID
string
The user ID.
ticket
string
The The auth ticket to request an access token.
Success Response
1
{
2
"status": 200,
3
"error": {
4
"code": "",
5
"message": "",
6
"field": ""
7
},
8
"data": {
9
"userID": "6",
10
"ticket": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWMiOiIxNTM4MzA4MTg3MzAwNDk0MDAwdTIuMzAzN2QzYWU2YjUzZmYxM2E2ZWQyYWQyZGM5YjJjOWQ1YzE2ZTE3ZTYyZTQzYjAwZjZlMDVjMWFkNTMwMjkxNGY5MGZkNDFjNDI2ZDBkN2JlZjU4NmIxMTk4NWNlNjExNWM3NWU2MjYwY2UwYjRhYjFlMGU3ODNlZWU2NWYyODJjNDRmZDcwOWFhMTA1ODM0YTMwMGRiODEwYjcyNzk5NzUxYzI5NWMxYThlNDliNDllNmM1YjhmMmQ0OGE1MDBkMTk0ZjA4NGRhMzk4YWViYjdlN2Y1ZDIxZWU4MTIwZTk3ODA4NTUwNTI5NDBjMmNkZjRiMDIxYzU0NTAxODUzNjE1MzgzMDgxODdlMjI1ZGVjNzE4YzliNWM3NWExOTBjOGI4Y2RmNDBmNWIzZTU0ZGQ4M2M3MTdjMmQ2ZjI1Njg4ZjAyZDc2NWVhYjVkZWY2NThiNGM4YmVjY2RkMTM2MWNlZDAwOTM5MzQxOWQzZmU1ZTI3ZjU5NGY1YmFkYzhhMjdmNjYzMDcyYSIsInVpZCI6MiwiZXhwIjoxNTM4MzExNzg3LCJqdGkiOiJhdDE1MzgzMDgxODczMDA0OTQwMDB1MiIsImlhdCI6MTUzODMwODE4N30.Dh_6a5wq19KBbz_2YX13MP9FM85cl1HC7Eek_0IgqUs"
11
}
12
}
Copied!

Error 4xx

Name
Description
ParamValidationFailed
The parameter validation failed.
HeaderValidationFailed
The request header validation failed.
ParamValidationFailed
1
{
2
"status": 400,
3
"error": {
4
"code": "40002",
5
"message": "Param 'xcUserID' is required",
6
"field": "105"
7
},
8
"data": {}
9
}
Copied!
HeaderValidationFailed
1
{
2
"status": 400,
3
"error": {
4
"code": "40001",
5
"message": "Request headers are required (Server-Key)",
6
"field": ""
7
},
8
"data": {}
9
}
Copied!
Last modified 4mo ago