Parse Server + Heroku : Facebook / Twitter ログインを試す

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

Parse Server を Heroku へセットアップしてみる」でセットアップしたParse Serverに、XcodeアプリからFacebookログインとTwitterログインができるか試してみます。ログインには、ParseUIの既存のユーザーインターフェイスを使いました。

00

参考としては、

の「Configuration」の「Advanced options」欄あたりを参考にしました。

まず、最終版のParse SDK for iOSをセットアップします。CocoaPodsでセットアップしました。最新バージョンは以下の感じです。

01

CocoaPods用の「Podfile」には以下のように書いて、「pod update」です。(「ParseFacebookUtils」はV4の方を使っています)

SwiftのXcodeプロジェクトで試したのでBridgeファイルを用意していますが、その中に

//Parse

#import <Parse/Parse.h>

#import <ParseUI/ParseUI.h>

#import <ParseFacebookUtilsV4/ParseFacebookUtilsV4.h>

#import <ParseTwitterUtils/ParseTwitterUtils.h>

#import <Parse/ParseClientConfiguration.h>

と「<Parse/ParseClientConfiguration.h>」を追加しました。今まで「Parse.setApplicationId」を使って初期化していましたが、「ParseClientConfiguration」という設定情報を引数に「Parse.initializeWithConfiguration」で初期化する形になったようです。

00

このserverのURLを「Parse Server を Heroku へセットアップしてみる」でセットアップしたParse Serverに接続します。$0.applicationIdは、HerokuのSettingsで指定した「APP_ID」と一致させる必要がありましたが、$0.clientKeyは、指定したもののParse ServerのConfigでは指定していなくても接続できました。ちょい謎。

これでとりあえず、Facebookログインの方は動作したように思います。が、Twitterログインの方でエラーが出ました。その模様がこちら。

 

Parse Server : Twitterログインでエラー from mushikago on Vimeo.

oauthの情報を設定することで、Twitterログインの方も含めて、エラーが出ないようにできました。

Heroku上でデプロイした「parse-server-example」の index.js をこのように修正してAdvanced optionsで「oauth」の情報を、HerokuのConfig Variablesで指定できるようにし、

02

HerokuのSettingsタブにてConfig Variablesを設定。「TWITTER_CONSUMER_KEY」と「TWITTER_CONSUMER_SECRET」(ともに任意の変数名)をここで設定しておきました。facebookは先ほど接続できたのですが、一応、「FACEBOOK_APP_IDS」という変数で指定しておきました。

03

そして、再度デプロイしなおしました。HerokuのデプロイタブでAutomatic deploysの「Enable Automatic Deploys」をオンにしておくと、GitHubのソースを変更したら自動的にデプロイしてくれるんじゃないかと思いますが、今回は手動で再度「Deploy Branch」を押して再デプロイしておきました。

04

この状態で再度ログインを試したところ、Twitterでもエラーが出ずログインできました。その模様がこちらの動画です。

Parse Server : FacebookとTwitterでログイン成功 from mushikago on Vimeo.

ログインに成功した後、dashboardを使って、データベースをみてみると、しっかりSessionやUserといったクラスができていました!

05

以上、とりあえず、ここまでは独自Parse Serverで復活できました。