-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Este é um projeto de exemplo de como disponibilizar serviços SOAP e REST para as aplicações de exemplo iOS e Android;
Projeto JEE 6 / Demoiselle. Hospedado na nuvem da RedHat OpenShift. Exposição de serviços SOAP e REST.
O projeto está disponível em http://quiz-exmo.rhcloud.com/
Web Services relacionados aos usuários do quiz. http://quiz-exmo.rhcloud.com/user?wsdl
-
login
: cadastra nome e e-mail na lista de usuários do sistema, se ainda não existir. Retorna a pontuação atual do usuário. -
addPoints
: adiciona pontos ao usuário indicado pelo e-mail, retornando a nova pontuação.Alternativa REST: http://quiz-exmo.rhcloud.com/rest/user/addPoints/{email}/{points}
-
ranking
: retorna a posição do usuário no raking geralAlternativa REST: http://quiz-exmo.rhcloud.com/rest/user/ranking/{offset}
Web Services relacionados aos quiz. http://quiz-exmo.rhcloud.com/quiz?wsdl
-
listCategories
: retorna uma lista das categorias de jogo.Alternativa REST: http://quiz-exmo.rhcloud.com/rest/quiz/listCategories
-
giveMeAQuiz
: obtém um quiz para a categoria informada.Alternativa REST: http://quiz-exmo.rhcloud.com/rest/quiz/get/{category}
-
Criar conta no openshift
-
Criar app jboss as 7.1
public URL http://ws-equizmo.rhcloud.com
-
Criar uma chave pública
ssh-keygen -t rsa -C "exmo.gov@gmail.com" gedit ./ssh/id_rsa.pub copia o texto e cola na página do openshift salva
-
clonar o respositorio git
git clone ssh://0adbad5017704587810ba91a454dd750@ws-equizmo.rhcloud.com/~/git/ws.git/
cd ws
git add . git commit -m 'starting app' git push
-
instalar as ferramentas de gerenciamento da redhat
https://openshift.redhat.com/community/developers/install-the-client-tools
sudo apt-get install ruby-full rubygems git-core sudo gem install rhc
-
clonar o respositorio do github e sincronizar
git add . git commit -m 'comment here' git push (comita e starta o aplicativo)
Aplicação de exemplo cliente deste servidor utilizando javascript api para Facebook. http://apps.facebook.com/equizmo
Considerando que no facebook já foi registrado um aplicativo, vamos utilizar oa Aplicativo ID.
No página /facebook/index.html criamos o script que fará o login:
$(function(){
FB.init({ apiKey: APP_ID,
channelUrl : DOMAIN+'/facebook/channel.html',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
frictionlessRequests: true
});
FB.getLoginStatus(function(response) {
console.log(response);
if (response.status === 'connected') {
uid = response.authResponse.userID;
accessToken = response.authResponse.accessToken;
console.log('connected and allowed');
} else if (response.status === 'not_authorized') {
console.log('connected but not allowed');
top.location.href = "https://www.facebook.com/dialog/oauth?client_id="+APP_ID+"&redirect_uri="+FIRST_PAGE+"&scope=email, user_about_me, publish_stream, publish_actions, manage_notifications";
} else {
console.log('isnt even logged in to Facebook');
top.location.href = "https://www.facebook.com/dialog/oauth?client_id="+APP_ID+"&redirect_uri="+FIRST_PAGE+"+&scope=email, user_about_me, publish_stream, publish_actions, manage_notifications";
}
});
No primeiro if temos o usuário já conectado e autorizado pelo facebook. A partir dai podemos buscar informações do usuário.
Podemos buscar os dados do usuario passando o uid (identificação do usuario proveniente do login)
FB.api('/'+uid, function(r) {
name = r.name;
email = r.email;
});
Para convidar os amigos basta invocar a api apprequests
FB.ui({ method: 'apprequests',
message: 'Vamos exercitar a mente!'});
A publicação na timeline precisa de uma confirmação do usuário. Agora ela utiliza um recurso chamado de feed dialog.
FB.ui({ method: 'feed',
message: scoreMessage,
description: scoreMessage,
caption: FIRST_PAGE,
link: FIRST_PAGE
});