[iOS] Fabric 入門 #8 Twitter ユーザーのメールアドレスの共有をリクエストする

2015.02.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Twitter ユーザーのメールアドレスを得るには

Twitter のユーザーは、ユーザー情報としてメールアドレスを持っています。Twitter サービスの登録時の認証に必要になるので、基本的に有効なメールアドレスが登録されていることになります。Twitter Kit では、このメールアドレスをアプリに共有してもらうようユーザーにリクエストすることができます。

twitter-request-email01

アプリを通してメールアドレスを得ることで、アプリのアップデート情報やコンテンツの更新などといった情報をメールで配信することができます。

利用には Twitter への利用許可リクエストが必要

今回ご紹介する機能は、現在 Twitter への利用許可リクエストが必要です。利用したい場合はこちらから利用申請をリクエストする必要があります。また Fabric 経由でアプリとは別に Twitter アプリも登録する必要があります。Twitter アプリはこちらから登録可能です。

Requesting a user’s email address requires your application to be whitelisted by Twitter. To request access, please use this form.

use this form

申請してみたところ、1日で返信が来て利用できるようになりました。

twitter-request-email02

有効化されると Twitter アプリのパーミッション設定画面に「Read, Write and Access Direct Messages」が追加されます。

twitter-request-email03

さらに、プライバシーポリシーと利用規約の URL も設定する必要があるので注意してください。

メールアドレスの共有をリクエストしてみる

実装は今回も簡単です。メールアドレスの共有をリクエストするには TWTRShareEmailViewController という View Controller を Modal で呼び出すだけです。

- (void)requestEmail
{
    TWTRShareEmailViewController *controller =
    [[TWTRShareEmailViewController alloc] initWithCompletion:^(NSString *email, NSError *error) {
        if (error) {
            NSLog(@"Error : %@", error);
        } else {
            NSLog(@"Email : %@", email);
        }
    }];
    [self presentViewController:controller animated:YES completion:nil];
}

アプリを実行してみましょう。次のような共有のリクエスト画面が表示されます。

twitter-request-email01

「許可する」ボタンをタップすると、Completion ブロックが呼ばれてメールアドレスの文字列が取得できます。あとは自分のサーバーに送信してデータベースに格納したりして管理しましょう。

twitter-request-email04

まとめ

Twitter の認証も含めると2段重ねの認証になるので、アプリ起動時に一気にリクエストするよりはオプション的な機能として、必要なユーザーだけにリクエストするなどといった運用が良いかも知れません(例えば、プッシュ通知の許可がオフになっているなど)。ユーザーがメールアドレスをいちいち入力するという手間が省けるので、上手く活用したいですね。

参考