FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Parse ServerでTwitter認証を行う

NCMBは2024年3月末をもって終了します

Parse ServerはオープンソースのmBaaS(mobile Backend as a Service)です。NCMBと仕組みが似ており、移行先としてお勧めしています。自分で立てるか、Parse Serverのクラウドサービスも利用できます。

Parse Serverでもソーシャル認証を提供しており、Twitter認証も利用できます(条件あり)。本記事では、Parse ServerでTwitter認証を行う方法を紹介します。

JavaScript SDKはありません

Twitterはクライアントサイドだけで認証を行う仕組みがないため、JavaScript SDKでは利用できません。Node.jsなどサーバーサイドの仕組みを用いて認証を行い、その結果をブラウザに返します。

また、Unity SDKやFlutter SDKについてもTwitter用の機能はないようです。

Parse Serverの設定

このTwitter認証の設定は、環境変数では設定できません(2023年12月現在)。 本来であれば PARSE_SERVER_AUTH_PROVIDERS に設定すれば良いのですが、設定しても思った通りに適用されなかったので、注意してください。

そこで、Parse Serverの起動用JSONファイルで設定します。

{
  "appId": "appId",
      : 省略
  "auth": {
        "twitter": {
            "consumer_key": "コンシューマーキー",
            "consumer_secret": "コンシューマーシークレット"
        }
  }
}

これで準備完了です。

Twitter認証の実装

次はクライアント側の実装です。以下はSwift SDKを利用した例です。

SDKのインストール

パッケージ管理によって幾つかの方法があります。

Swift Package Manager

以下のURLを指定します。

https://github.com/parse-community/Parse-Swift.git

CocoaPods

pod 'ParseSwift'

Carthage

github "parse-community/Parse-Swift"

SDKの読み込み

SDKを初期化します。各引数は自分のアプリのものに置き換えてください。

ParseSwift.initialize(applicationId: "YOUR_APPLICATION_ID", clientKey: "YOUR_CLIENT_KEY", serverURL: URL(string: "https://example.com")!)

認証処理

認証はログイン、新規登録ともに同じコードで行います。 User.twitter.login を呼び出すだけです。

User.twitter.login(userId: "testing", screenName: "screenName",
    authToken: "consumerKey", authTokenSecret: "consumerSecret",
    consumerKey: "this", consumerSecret: "authTokenSecret")

他の言語での実装

他のSDKでの実装については、下記を参照してください。

データについて

ユーザーのデータは _User クラスに保存されます。また、Facebookに関する情報は authData に保存されます。この辺りはNCMBと同じです。

Parse Serverのデータ

{
  "twitter": {
        "user_id": "testing",
        "screen_name": "screenName",
        "consumer_key": "consumerKey",
        "consumer_secret": "consumerSecret",
        "auth_token": "authToken",
        "auth_token_secret": "authTokenSecret"
  }
}

NCMBのデータ

{
    "twitter": {
        "id": "295409117",
        "screen_name": "goofmint",
        "oauth_consumer_key": "DRM...qhr",
        "consumer_secret": "K9i...61X",
        "oauth_token": "295...anQ",
        "oauth_token_secret": "1aG...Ww7"
    }
}

データの違い

Parse Serverでは、user_id になっており、NCMBでは id となっている部分が異なります。

まとめ

Parse ServerでTwitter認証を行う方法を紹介しました。Parse Serverは、NCMBと仕組みが似ているため、移行先としてお勧めしています。移行に伴う変更量が、他のサービスと比べて少なく済むはずです。

ソーシャル認証は設定なども必要で、Parse Serverのドキュメントにも詳しくは記載されていませんでした。もし利用される場合には、本記事を参考にしてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。