Parse
Parse Data Parse Push
Parse Social Cloud Code
iOS OS X Android Javascript
Windows Phone Windows 8 .NET Rest API
Parse Data
criando uma nova classe
criando uma nova classe
criando uma nova classe
ParseObject profile = new ParseObject("Profile");profile.put("age", 45);profile.put("name", "John Doe");profile.saveInBackground();
criando um novo objeto
// Cria um postParseObject myPost = new ParseObject("Post");myPost.put("title", "Estou com fome!");myPost.put("content", "Vamos almoçar aonde?"); // Cria um comentárioParseObject myComment = new ParseObject("Comment");myComment.put("content", "Vamos no Estação.");
myComment.put("parent", myPost);myComment.saveInBackground();
objetos com relacionamento
ParseQuery query = new ParseQuery("Profile");query.whereEqualTo("age", 45);query.findInBackground(new FindCallback() {
public void done(List<ParseObject> profileList, ParseException e) {if (e == null) {
Log.d("profile", "Retrieved " + profileList.size() + " profiles");} else {
Log.d("profile", "Error: " + e.getMessage());}
}});
int age = profile.getInt("age");String name = profile.getString("name");
buscando objetos
ParseObject profile = new ParseObject("Profile");profile.put("age", 27);profile.put("name", "Mary Moe");profile.saveEventually();
Salve quando puder!
profile.increment("age");profile.saveInBackground();
profile.deleteInBackground();
profile.remove("name");profile.saveInBackground();
outras funções úteis
api requests
Parse Push
interface códigoou
via interface
// Salva a instalação no Parse.ParseInstallation.getCurrentInstallation().saveInBackground();
// Adiciona o usuário no canal “Giants”.PushService.subscribe(context, "Giants", YourActivity.class);
adicionando a um canal de envio
ParsePush push = new ParsePush();push.setChannel("Giants");push.setMessage("Touchdown para os Giants! O time vira contra os Mets.");push.sendInBackground();
via código
pushs enviados
Parse Social
SSO Linkvs
ParseFacebookUtils.initialize("ID DA APP DO FACEBOOK");
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);}
facebook connect
ParseFacebookUtils.logIn(this, new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { if (user == null) { Log.d("MeuApp", "Ops. O usuário cancelou o login do Facebook."); } else if (user.isNew()) { Log.d("MeuApp", "Usuário criado e logado via Facebook!"); } else { Log.d("MeuApp", "Usuário logado via Facebook!"); } }});
if (!ParseFacebookUtils.isLinked(user)) { ParseFacebookUtils.link(user, this, new SaveCallback() { @Override public void done(ParseException ex) { if (ParseFacebookUtils.isLinked(user)) { Log.d("MeuApp", "Boa! Usuário conectou sua conta do Facebook!"); } } });}
SSO
LINK
ParseTwitterUtils.initialize("CONSUMER KEY", "CONSUMER SECRET");
twitter connect
ParseTwitterUtils.logIn(this, new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { if (user == null) { Log.d("MeuApp", "Ops. O usuário cancelou o login do Twitter."); } else if (user.isNew()) { Log.d("MeuApp", "Usuário criado e logado via Twitter!"); } else { Log.d("MeuApp", "Usuário logado via Twitter!"); } }});
if (!ParseTwitterUtils.isLinked(user)) { ParseTwitterUtils.link(user, this, new SaveCallback() { @Override public void done(ParseException ex) { if (ParseTwitterUtils.isLinked(user)) { Log.d("MeuApp", "Boa! Usuário conectou sua conta do Twitter!"); } } });}
SSO
LINK
Cloud Code
$ curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
$ parse new LightningTalkCloudCodeEmail: [email protected]:1:Foliao2:Lightning TalkSelect an App: 2$ cd LightningTalkCloudCode
command line tool
Parse.Cloud.define("hello", function(request, response) { response.success("Hello world!");});
cloud/main.js
$ parse deploy
New release is named v1
$ curl -X POST \ -H "X-Parse-Application-Id: <INSERIR PARSE APP ID>" \ -H "X-Parse-REST-API-Key: <INSERIR PARSE REST API KEY>" \ -H "Content-Type: application/json" \ -d '{}' \ https://api.parse.com/1/functions/hello
{ "result": "Hello world!"}
deploy
cloud functions
Parse.Cloud.define("averageStars", function(request, response) { var query = new Parse.Query("Review"); query.equalTo("movie", request.params.movie); query.find({ success: function(results) { var sum = 0; for (var i = 0; i < results.length; ++i) { sum += results[i].get("stars"); } response.success(sum / results.length); }, error: function() { response.error("movie lookup failed"); } });});
cloud functions - validations
Parse.Cloud.beforeSave("Review", function(request, response) { if (request.object.get("stars") < 1) { response.error("you cannot give less than one star"); } else if (request.object.get("stars") > 5) { response.error("you cannot give more than five stars"); } else { response.success(); }});
logging
Parse.Cloud.define("Logger", function(request, response) { console.log(request.params); response.success();});
networking
Parse.Cloud.httpRequest({ method: 'GET’, url: 'http://www.parse.com/', success: function(httpResponse) { console.log(httpResponse.text); }, error: function(httpResponse) { console.error('Request failed with response code ' + httpResponse.status); }});
cloud modules
Gustavo Barbosa
facebook.com/gustavocsb
github.com/barbosa
twitter.com/gustavocsb
obrigado,