Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
5分でわかったつもりになるParse.comParse is the cloud app platform foriOS, Android, JavaScript, Windows 8,Windows Phone 8, and OS X.
Parse は BaaS ( Backend as a Service)モバイルアプリ開発のサーバサイド部分を肩代わりしてくれる1.ユーザ管理機能2.サーバサイド実装3.サードパーティとの連携
ユーザ管理機能
データのread/writeが簡単String, Number, Boolean, Date, File, GeoPoint,Array, Object, Pointer, Relation が保存できる// Saving ObjectPFOb...
ブラウザからデータの確認ができる-データの追加、書き換えも可能データのread/writeが簡単objectId	 	 	 	 	 	 	 :	 識別子cheatMode	 	 	 	 	 	 :	 追加したカラムplayerName	 	 	...
ユーザ登録・ログインが簡単// Signing upPFUser *user = [PFUser user];user.username = @"username"; // requireduser.password = @"password"...
Facebook/twitter連携が簡単// Linkingif (![PFFacebookUtils isLinkedWithUser:user]) {    [PFFacebookUtils linkUser:userpermission...
アクセスコントロール設定が簡単{"userId":{"read":true,"write":true}}すべてのオブジェクトに対して、user/roleごとにread/writeのアクセス権限が設定できる
メール認証が簡単UserテーブルのデフォルトカラムobjectId	 	 	 	 	 	 	 :	 識別子username	 	 	 	 	 	 	 :	 ユーザ名(required)password	 	 	 	 	 	 	 :	 パスワード...
プッシュ通知が簡単// Find devices associated with these usersPFQuery *pushQuery = [PFInstallation query];[pushQuery whereKey:@"user...
サーバサイド実装
サーバサイドの関数実行が簡単Parse.Cloud.define("averageStars", function(request, response) {   var query = new Parse.Query("Review");   ...
サーバサイドの関数実行が簡単// iOS[PFCloud callFunctionInBackground:@"averageStars"                   withParameters:@{@"movie": @"The M...
データ書き込み前後のトリガー実装が簡単Parse.Cloud.beforeSave("Review", function(request, response) {if (request.object.get("stars") < 1 || re...
データ書き込み前後のトリガー実装が簡単Parse.Cloud.afterSave("Comment", function(request) {   query = new Parse.Query("Post");   query.get(req...
サードパーティとの連携
Parse + Twilioが簡単var Twilio = require(twilio);Twilio.initialize(myAccountSid, myAuthToken);	 //twilio.comで取得Twilio.sendSMS...
Parse + Mailgunが簡単Mailgunとは、メール送信APIサービスvar Mailgun = require(mailgun);Mailgun.initialize(myDomainName, myAPIKey);	 //mail...
+ CrowdFlower Real Time Foto Moderator- 画像ソリューション(ランキング、カテゴライズ、コンテンツ監視、など)- https://crowdflower.com+ Moment- 日付処理のJSライブラリ- ...
基本無料
Upcoming SlideShare
Loading in …5
×

5分でわかったつもりになるParse.com

37,134 views

Published on

Published in: Technology

5分でわかったつもりになるParse.com

  1. 1. 5分でわかったつもりになるParse.comParse is the cloud app platform foriOS, Android, JavaScript, Windows 8,Windows Phone 8, and OS X.
  2. 2. Parse は BaaS ( Backend as a Service)モバイルアプリ開発のサーバサイド部分を肩代わりしてくれる1.ユーザ管理機能2.サーバサイド実装3.サードパーティとの連携
  3. 3. ユーザ管理機能
  4. 4. データのread/writeが簡単String, Number, Boolean, Date, File, GeoPoint,Array, Object, Pointer, Relation が保存できる// Saving ObjectPFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];[gameScore setObject:[NSNumber numberWithInt:1337] forKey:@"score"];[gameScore setObject:@"Kenta TSUJI" forKey:@"playerName"];[gameScore setObject:[NSNumber numberWithBool:NO] forKey:@"cheatMode"];[gameScore saveInBackground];// QueryPFQuery *query = [PFQuery queryWithClassName:@"GameScore"];[query whereKey:@"playerName" equalTo:@"Kenta TSUJI"];[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {   if (!error) {     NSLog(@"Successfully retrieved %d scores.", objects.count);   } else {     NSLog(@"Error: %@ %@", error, [error userInfo]);  }}];
  5. 5. ブラウザからデータの確認ができる-データの追加、書き換えも可能データのread/writeが簡単objectId : 識別子cheatMode : 追加したカラムplayerName : 追加したカラムscore : 追加したカラムcreatedAt : オブジェクトの生成日時(GMT)updatedAt : オブジェクトの最終変更日時(GMT)ACL : アクセスコントロール
  6. 6. ユーザ登録・ログインが簡単// Signing upPFUser *user = [PFUser user];user.username = @"username"; // requireduser.password = @"password"; // requireduser.email = @"email@example.com"; // optional[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {if (!error) {// success    }}];// Logging in[PFUser logInWithUsernameInBackground:@"username"password:@"password"  block:^(PFUser *user, NSError *error) {    if (user) {// Do stuff after successful login.    }}];
  7. 7. Facebook/twitter連携が簡単// Linkingif (![PFFacebookUtils isLinkedWithUser:user]) {    [PFFacebookUtils linkUser:userpermissions:nilblock:^(BOOL succeeded, NSError *error) {        if (succeeded) {            NSLog(@"Woohoo, user logged in with Facebook!");        }    }];}// Linkingif (![PFTwitterUtils isLinkedWithUser:user]) {    [PFTwitterUtils linkUser:userblock:^(BOOL succeeded, NSError *error) {        if ([PFTwitterUtils isLinkedWithUser:user]) {            NSLog(@"Woohoo, user logged in with Twitter!");        }    }];}
  8. 8. アクセスコントロール設定が簡単{"userId":{"read":true,"write":true}}すべてのオブジェクトに対して、user/roleごとにread/writeのアクセス権限が設定できる
  9. 9. メール認証が簡単UserテーブルのデフォルトカラムobjectId : 識別子username : ユーザ名(required)password : パスワード(required)authData : Facebook/twitterの認証情報emailVerified : メール認証フラグemail : メールアドレスcreatedAt : ユーザの生成日時(GMT)updatedAt : ユーザの最終変更日時(GMT)ACL : アクセスコントロール設定画面から Verifying user emails を ON にするだけ1.emailVerified が false のユーザはログインできない2.サインアップ時にメールが届く3.リンクをタップすると emailVerified が true になる
  10. 10. プッシュ通知が簡単// Find devices associated with these usersPFQuery *pushQuery = [PFInstallation query];[pushQuery whereKey:@"user" matchesQuery:userQuery]; // Send push notification to queryPFPush *push = [[PFPush alloc] init];[push setQuery:pushQuery]; // Set our Installation query[push setMessage:@"Free hotdogs at the Parse concession stand!"];[push sendPushInBackground];PFInstallation *installation = [PFInstallation currentInstallation];[installation setObject:[PFUser currentUser] forKey:@"owner"];[installation saveInBackground];
  11. 11. サーバサイド実装
  12. 12. サーバサイドの関数実行が簡単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");     }   });});timeout は 15 seconds
  13. 13. サーバサイドの関数実行が簡単// iOS[PFCloud callFunctionInBackground:@"averageStars"                   withParameters:@{@"movie": @"The Matrix"}                            block:^(NSNumber *ratings, NSError *error) {   if (!error) {NSLog(@"%@", ratings);  }}];// AndroidHashMap<String, Object> params = new HashMap<String, Object>();params.put("movie", "The Matrix");ParseCloud.callFunctionInBackground("averageStars", params, new FunctionCallback<Float>() {    void done(Float ratings, ParseException e) {        if (e == null) {         Log.d(ratings);        }    }});
  14. 14. データ書き込み前後のトリガー実装が簡単Parse.Cloud.beforeSave("Review", function(request, response) {if (request.object.get("stars") < 1 || request.object.get("stars") > 5) {     response.error(); // 書き込み処理が実行されない   }   var comment = request.object.get("comment");   if (comment.length > 140) {     request.object.set("comment", comment.substring(0, 137) + "...");  }   response.success(); });timeout は 3 seconds
  15. 15. データ書き込み前後のトリガー実装が簡単Parse.Cloud.afterSave("Comment", function(request) {   query = new Parse.Query("Post");   query.get(request.object.get("post").id, {     success: function(post) {       post.increment("comments");      post.save();     },    error: function(error) {       throw "Got an error " + error.code + " : " + error.message;    }   });});timeout は 3 secondsタイムアウトするとデータの不整合が起こる可能性があるので afterSave は極力使わない方がいい
  16. 16. サードパーティとの連携
  17. 17. Parse + Twilioが簡単var Twilio = require(twilio);Twilio.initialize(myAccountSid, myAuthToken); //twilio.comで取得Twilio.sendSMS({   From: "+14155551212",   To: "+14155552121",   Body: "Hello from Cloud Code!"}, {  success: function(httpResponse) {     response.success("SMS sent!");   },   error: function(httpResponse) {     response.error("Uh oh, something went wrong");   }});Twilioとは、WebAPIを通して通話やSMS送信が可能なクラウド電話APIサービス
  18. 18. Parse + Mailgunが簡単Mailgunとは、メール送信APIサービスvar Mailgun = require(mailgun);Mailgun.initialize(myDomainName, myAPIKey); //mailgun.comで取得Mailgun.sendEmail({   to: "email@example.com",   from: "Mailgun@CloudCode.com",   subject: "Hello from Cloud Code!",   text: "Using Parse and Mailgun is great!"}, {  success: function(httpResponse) {    console.log(httpResponse);     response.success("Email sent!");   },   error: function(httpResponse) {     console.error(httpResponse);     response.error("Uh oh, something went wrong");   }});
  19. 19. + CrowdFlower Real Time Foto Moderator- 画像ソリューション(ランキング、カテゴライズ、コンテンツ監視、など)- https://crowdflower.com+ Moment- 日付処理のJSライブラリ- http://momentjs.com+ Stripe- モバイルクレカ決済API- https://stripe.com+ Underscore- ユーティリティライブラリ- http://underscorejs.org
  20. 20. 基本無料

×