概要

Account Kitを使用すると、利用者は、電話番号やメールアドレスをパスワード不要の認証情報として使用して、短時間で簡単にアプリに登録、ログインできるようになります。Account Kitでは、グローバルリーチを活かした、信頼性の高い、拡張性に優れたパフォーマンスを実現するために、FacebookのメールとSMS送信インフラが利用されています。メールや電話番号による認証を使用するため、Account KitではFacebookアカウントは必要ありません。ソーシャルログインの理想的な代替方法と言えます。

Account Kitはモバイル機器用に開発されました。これにより、長期セッションや簡単なアカウント管理を実現でき、パスワードを覚える必要もなくなります。利用者がメールアドレスを使ってログインを開始すると、Account Kitから利用者のメールアドレスに一時リンクが送られます。SDKでは、メールアドレスの認証時期が検出されます。利用者が電話番号を使ってログインを開始すると、Account Kitからその番号にSMSの認証コードが送られるか、その番号を直接認証します(「インスタント認証」をご覧ください)。

Account Kitのログインフローは、アカウントの登録とアカウントのログインを組み合わせたものです。アカウントが存在するかどうかを確認したり、新しい利用者の登録に個別のフローを作成したりする必要はありません。ログインまたは登録に成功すると、Account Kitからアプリにログインした利用者の認証情報が提供されます。

ログインのユーザーインターフェイスは、SDKに含まれています。

  • iOS SDKには、開発者に代わってログインフローを管理する、カスタマイズできるビューコントローラーが含まれています。はじめに、ビューコントローラーを表示します。

  • Android SDKには、アクティビティが含まれており、ログインの実行に必要な操作はアクティビティを開始することのみです。アクティビティには、ログインが成功したか、または失敗したかを示す結果が含まれています。

  • JS SDKには、開発者に代わってログインフローを管理する、ログインAPIが含まれています。まず、accountkit.loginを呼び出します。

  • ベーシックウェブでは、Account Kitからログインフローを開始するURLが提供されます。

すべてのSDKとベーシックウェブURLでは、ログイン画面の重要なカスタマイズを行うことができます。

Account Kitでは、数百の国コードに対するSMSベースの認証機能がサポートされています。Account KitでSMSベースの認証用にサポートされている国コードの一覧については、「Account KitでサポートされるSMSの国コード」をご覧ください。2018年8月まで、SMSメッセージの課金はありません。2018年8月以降、1か月あたり10万件を超えるSMSメッセージには、通常のSMS料金が課金される可能性があります。詳しくは、FAQの「"Is there a charge for using SMS with Account Kit" (Account KitでのSMSの使用に料金は発生しますか)」をご覧ください。

Account Kitでは、インターフェイス、SMSメッセージ、認証メールを数多くの言語にローカライズする機能がサポートされています。ローカリゼーション用にサポートされている言語については、「サポートされている言語」をご覧ください。

Account Kitのしくみ

Account Kitでは、各アプリに対して専用のデータベースが作成されます。データには、REST API経由でいつでもアクセスできます。利用者がアプリにログインすると、アプリ内で使用できる電話番号、メールアドレス、アカウントIDの一覧がこのデータベースに追加されます。これらのアカウントIDは、アプリ固有のものです。アプリにFacebookログインも使用する場合、Facebookのapp-scoped IDと競合することはありません。

Account Kitには、利用者が電話番号による認証とメールによる認証のどちらを選択したかによって、2つのログインフローが用意されています。

電話番号による認証フロー

  1. 電話番号でAccount Kit APIを呼び出して、ログインや登録を実行します。
  2. Account Kitサーバーによって、ログインを続けるための確認コードを含むSMSが送られます。SMSコードを受信できない場合は、2つの選択肢が用意されています。
    • 通話 - 通話によってSMSコードを受け取ることができます。通話で使用する言語の一覧については、サポートされている言語の「通話でサポートされている言語」セクションをご覧ください。
    • Facebookのお知らせ - 電話番号がFacebookアカウントにリンクされている場合は、お知らせとしてそのアカウントに送られたSMSを受け取ることができます。
    Account Kitでは、SMSコードを送らずに電話番号を直接認証することもできます。詳しくは、「インスタント認証」をご覧ください。
  3. SDKがSMSの認証コードを検証します。
  4. アプリに有効なクライアントアクセストークンフローがある場合、正常なログインへの応答として、アカウントIDを含むアクセストークンがアプリに送られます。アプリに有効なクライアントアクセストークンフローがない場合、アプリケーションのサーバーがアクセストークンを安全にリクエストするために使用できる認証コードが、クライアントアプリに送られます。

クライアントアクセストークンフローについて詳しくは、「アクセストークンと認証コード」をご覧ください。

メールによる認証フロー

  1. メールアドレスでAccount Kit APIを呼び出して、ログインや登録を実行します。
  2. Account Kitサーバーから、メールアドレスに確認メールを送ります。
  3. SDKが確認メールのステータスをモニタリングします。
  4. アプリに有効なクライアントアクセストークンフローがある場合、正常なログインへの応答として、アカウントIDを含むアクセストークンがアプリに送られます。アプリに有効なクライアントアクセストークンフローがない場合、アプリケーションのサーバーがアクセストークンを安全にリクエストするために使用できる認証コードが、クライアントアプリに送られます。

クライアントアクセストークンフローについて詳しくは、「アクセストークンと認証コード」をご覧ください。

Account Kitでは電話やメールのログイン資格情報をFacebookにリンクしないため、アプリに年齢や場所の制限をかけることはできません。

インスタント認証

JavaScript用Facebook SDKを使用してウェブ向けのアプリを開発する場合や、Android用Facebook SDKを使用してAndroidバージョン4.17以降向けのアプリを開発する場合は、Account Kitでインスタント認証を使用して電話番号を簡単に確認できます。この場合、利用者が入力した番号を含んだFacebookアカウントを保有している場合、利用者が手動でSMSコードを入力することなく、Account Kitが直接番号を確認します。

メールのインスタント認証は、JavaScript用Facebook SDKおよびAndroid SDKバージョン4.25以降でも利用できます。

Androidでインスタント認証を行うには、利用者が以下に該当している必要があります。

  • Android用Facebookアプリ(バージョン99以降)をインストールしている
  • Facebookアカウントを持っており、Account Kitに入力する電話番号またはメールアドレスを登録している
  • そのアカウントにログインしている

アプリでAndroidのインスタント認証を使用するには、以下の条件を満たす必要があります。

  • 電話番号によるログイン向けにはFacebook Android SDKバージョン4.17以降、メールによるログイン向けにはFacebook Android SDKバージョン4.25以降を使用してAndroid向けアプリを開発している
  • アプリダッシュボードでアプリのハッシュコードを入力している。詳しくは、Android用Account Kitの「クイックスタート」セクションにある「開発キーハッシュとリリースキーハッシュを追加する」をご覧ください。

ウェブでインスタント認証を行うには、利用者が以下に該当している必要があります。

  • Facebookアカウントを持っており、Account Kitに入力する電話番号またはメールアドレスを登録している
  • 同じブラウザでそのアカウントにログインしている

JS SDKのインスタント認証が自動的に有効になります。

開発中のアプリでインスタント認証をテストする方法については、「FAQ(よくある質問)」をご覧ください。

Account Kit設定ページ

Account Kitを使用してアプリにログインする利用者には設定ページが用意されており、そこで通知をブロックしたり、アプリからアカウントを削除したりできます。利用者がアプリからアカウントを削除したあとに、同じ資格情報でAccount Kitを使ってアプリにログインした場合、その利用者のアカウントIDは以前と異なるため、開発者は注意する必要があります。

作成を始める

実装のステップとプラットフォーム固有の実装について詳しくは、以下のガイドをご覧ください。