1. Apresentação
Fornecemos uma Interface de Programação de Aplicação (API) para que desenvolvedores possam interagir com o nosso sistema.
Esta é a documentação oficial de comunicação com esta API.
1.1 Autenticação
Em todas as requisições para a API deve ser enviado junto as credenciais como um argumento da requisição.
Existem requisições que você deve utilizar a chave pública (publicKey) e outras onde a chave secreta (apiKey) deve ser utilizada.
http://api.plugchat.in/?apiKey=apiKey
http://api.plugchat.in/?publicKey=publicKey
A chave da API e a chave Pública estão disponíveis dentro da Administração em: Integração de Usuários -> Integrar Meus Usuários
1.2 Formato da Resposta
Toda as requisições serão respondidas no formato JSON por padrão.
{ "code": 200, "txt": "OK", data: ... }
{ "code": 300, "txt": "Invalid apiKey", data: null }
{ "code": 301, "txt": "Malformed request", data: null }
{ "code": 400, "txt": "Missing parameter: user", data: null }
...
1.3 JSONP (Callback)
Para receber a requisição no formato JSONP, adicione o parâmetro callback: ?callback=callback_method
- jQuery(document).ready(function(){
- var publicKey = 'publicKey';
- jQuery.getJSON('http://api.plugchat.in/?publicKey=' + encodeURIComponent(publicKey) + '&callback=?', function(data) {
- alert(data.code + ': ' + data.txt);
- });
- });
2. Integração de Usuários
Nesta seção da documentação é mostrado como integrar usuários de um site com a barra de chat.
2.1 Verificando Usuário
O primeiro passo é identificar o usuário e verificar se ele já está conectado na barra de chat.
Para fazer está verificação e identificação é simples: verifique os cookies 'plugChatUserSessionId' e 'plugChatUserStatus'.
Isso mesmo, um cookie será gravado com a sua identificação e seu status de conexão. Não é necessário uma requisição para a API.
Cookie
plugChatUserSessionId
Retorno
null - não é usuário da barra de chat, não está com ela aberta
userSessionId - identificação única do usuário
Cookie
plugChatUserStatus
Retorno
null - não é usuário da barra de chat, não está com ela aberta
1 - usuário visitante
2 - usuário conectado pelo facebook
3 - usuário conectado pelo twitter
4 - usuário conectado via api (pelo seu site)
- $plugChatUserStatus = (isset($_COOKIE['plugChatUserStatus']) ? $_COOKIE['plugChatUserStatus'] : false;
- if ( !$plugChatUserStatus )
- // não é usuário da barra de chat, não está com ela aberta
- } else {
- if ( $plugChatUserStatus == 1 ) {
- // usuário visitante
- } else if ( $plugChatUserStatus == 4 ) {
- // usuário conectado via api (pelo seu site)
- } else {
- // usuário logado por outra forma (facebook, twitter, etc)
- }
- }
2.2 Login - ?action=login
Efetua o login de um usuário na barra de chat.
Nota: Este passo é necessário se um usuário estiver autenticado no seu site e não estiver autenticado na barra de chat.
Requisição
http://api.plugchat.in/?action=login
Parâmetros
apiKey: {apiKey}
user: {cookie: plugChatUserSessionId}
nick: Nick do usuário
avatar: Avatar do usuário (URL) (Opcional)
Exemplo
http://api.plugchat.in/?action=login&apiKey=apiKey&user=plugChatUserSessionId&nick=James&avatar=http://static.plugchat.in/images/avatar.png
- $apiKey = 'apiKey';
- $userSessionId = (isset($_COOKIE['plugChatUserSessionId']) ? $_COOKIE['plugChatUserSessionId'] : false;
- $nick = 'Tiago Fischer';
- $avatar = 'http://static.plugchat.in/images/avatar.png';
- $url = 'http://api.plugchat.in/?action=login&apiKey=' . urlencode($apiKey) . '&user=' . urlencode($userSessionId) . '&nick=' . urlencode($nick) . '&avatar=' . urlencode($avatar);
- $answer = json_decode(file_get_contents($url), true);
- if ($answer['code'] != 200) {
- // ERROR!
- print_r($answer);
- } else {
- // OK!
- }
2.3 Logout - ?action=logout
Efetua o logout de um usuário conectado na barra de chat.
Nota: Este passo é necessário se um usuário não estiver logado no seu site e estiver logado na barra de chat.
Requisição
http://api.plugchat.in/?action=logout
Parâmetros
apiKey: {apiKey}
user: {cookie: plugChatUserSessionId}
Exemplo
http://api.plugchat.in/?action=logout&apiKey=apiKey&user=plugChatUserSessionId
- $apiKey = 'apiKey';
- $userSessionId = (isset($_COOKIE['plugChatUserSessionId']) ? $_COOKIE['plugChatUserSessionId'] : false;
- $url = 'http://api.plugchat.in/?action=logout&apiKey=' . urlencode($apiKey) . '&user=' . urlencode($userSessionId);
- $answer = json_decode(file_get_contents($url), true);
- if ($answer['code'] != 200) {
- // ERROR!
- print_r($answer);
- } else {
- // OK!
- }
2.4 Exemplo Completo
Aqui é mostrado um exemplo final do código que deve ser colocado no seu site para fazer a integração dos seus usuário com a barra de chat.
Este código pode ser colocado em todas as requisições de páginas (recomendado), porque ele executa as ações (login e logout) somente quando for necessário.
Ou pode ser colocado juntamente com as ações de login e logout do seu site. (não recomendado, porque não irá funcionar para os usuários já autenticados no seu site)
- $apiKey = 'apiKey';
- // identifica se o usuário está ou não conectado no seu site (substituir pelo seu código)
- $logged = true/false;
- // pega as informações do usuário através dos cookies
- $userSessionId = isset($_COOKIE['plugChatUserSessionId']) ? $_COOKIE['plugChatUserSessionId'] : false;
- $userStatus = isset($_COOKIE['plugChatUserStatus']) ? $_COOKIE['plugChatUserStatus'] : false;
- if ( $logged ) {
- // o usuário está conectado no seu site! então vamos verifica se ele não está conectado na barra de chat
- if ( $userStatus && $userStatus != 4 ) {
- // Login - ?action=login
- $nick = 'Tiago Fischer';
- $avatar = 'http://static.plugchat.in/images/avatar.png';
- $url = 'http://api.plugchat.in/?action=login&apiKey=' . urlencode($apiKey) . '&user=' . urlencode($userSessionId) . '&nick=' . urlencode($nick) . '&avatar=' . urlencode($avatar);
- $answer = json_decode(file_get_contents($url), true);
- if ($answer['code'] != 200) {
- // ERROR!
- //print_r($answer);
- } else {
- // OK!
- }
- }
- } else {
- // o usuário não está conectado no seu site! então vamos verificar se ele está conectado na barra de chat
- if ( $userStatus && $userStatus == 4 ) {
- // Logout - ?action=logout
- $url = 'http://api.plugchat.in/?action=logout&apiKey=' . urlencode($apiKey) . '&user=' . urlencode($userSessionId);
- $answer = json_decode(file_get_contents($url), true);
- if ($answer['code'] != 200) {
- // ERROR!
- //print_r($answer);
- } else {
- // OK!
- }
- }
- }
3. Dados
Nesta seção da documentação é mostrado como requisitar dados sobre a sua barra.
3.1 Número de usuários conectados
Retorna o número de usuários conectados.
Requisição
http://api.plugchat.in/?action=getonline
Parâmetros
publicKey: {publicKey}
Exemplo
http://api.plugchat.in/?action=getonline&publicKey=publicKey
- jQuery(document).ready(function(){
- var publicKey = 'publicKey';
- jQuery.getJSON('http://api.plugchat.in/?publicKey=' + encodeURIComponent(publicKey) + '&callback=?', function(data) {
- if (data.code == 200) {
- jQuery('#getonline').html(data.data);
- }
- });
- });
4. Bibliotecas
Lista de aplicações que já possuem implementações disponíveis do desta API.
