Presence capabilities
Follow this workflow to use presence capabilities.
Read time 1 minuteLast updated a day ago
To use presence capabilities, set the following fields in the vx_req_account_anonymous_login message.
- enable_buddies_and_presence - set to 1.
- buddy_managment_mode - set to always allow, always block, or to notify the application when another user wants to become a buddy.
- initial_buddy_uris - the initial list of buddies for the user who is signing in.
- initial_blocked_uris - the initial list of users that are blocked for the user who is signing in.
- initial_blocked_uris_presence_only - the initial list of users that are blocked for online status subscription only.
- initial_allowed_uris - the initial list of allowed URIs.
The following code displays an example of presence-specific sign in behavior:
. . .char **vectorToList(const vector<string> &items){ if (items.empty()) return nullptr; char **list = static_cast<char **>(vx_allocate(sizeof(char*) * (items.size() + 1))); for (size_t i = 0; i < items.size(); ++i) { list[i] = vx_strdup(items.at(i).c_str()); } list[items.size()] = 0; return list;}void (MyLogin (const string &account, const vector<string> &buddies, const vector<string> &blocked, const vector<string> &blockedpresence, const vector<string> &allowed){ vx_req_account_anonymous_login *req; vx_req_account_anonymous_login_create(&req); req->connector_handle = vx_strdup("c1"); req->account_name = vx_strdup(".issuer-w-dev.mytestaccountname."); req->account_handle = vx_strdup(req->account_name); req->access_token = vx_strdup(_the_access_token_generated_by_game_server); req->enable_buddies_and_presence = 1; req->buddy_management_mode = mode_application; req->initial_buddy_uris = vectorToList(buddies); req->initial_blocked_uris = vectorToList(blocked); req->initial_blocked_uris_presence_only = vectorToList(blockedpresence); req->initial_allowed_uris = vectorToList(allowed); vx_issue_request3(&req->base, &request_count);}. . .