2

私は iOS アプリを開発しており、Facebook、LinkedIn、Google+、およびTwitterでログインしています。それらのすべてで、 Twitterを除く API を使用してプロファイルからメールを読むことができました。

メールを受け取る方法はありますか?

そうでない場合、Twitter には「内部メール」、つまり facebook のように生成されたメール (someone@facebook.com) がありますか?

その理由は、データベース内のユーザーの識別子 (主キー) として電子メールを使用しているためです。

どうもありがとう。

4

2 に答える 2

3

いいえ、メールアドレスは Twitter API 経由では利用できません: https://dev.twitter.com/discussions/1737

利用可能な「内部メール」もありません。Twitterのユーザー名を使用し、そこからユーザーにメールアドレスを尋ねる必要があります。

于 2013-09-17T08:39:49.587 に答える
1

Twitter フレームワークを使用する必要があります。Twitter はそのための美しいフレームワークを提供しています。それをアプリに統合するだけです。

ユーザーの電子メール アドレスを取得するには、アプリケーションがホワイトリストに登録されている必要があります。ここにリンクがあります。このフォームを使用するために移動します。コンシューマ キー、アプリの App Store リンク、プライバシー ポリシーへのリンク、メタデータ、アプリへのログイン方法など、アプリに関する詳細を sdk-feedback@twitter.com にメールで送信できます。 2〜3営業日以内に返信します。

以下は、Twitter サポート チームとの会話によってホワイトリストに登録された経緯です。

  • sdk-feedback@twitter.comコンシューマ キー、アプリの App Store リンク、プライバシー ポリシーへのリンク、メタデータ、アプリへのログイン方法など、アプリに関する詳細を記載したメールを に送信します。アプリ内のユーザーのメールアドレスにアクセスしたい旨をメールでお知らせください。

  • 彼らはあなたのアプリをレビューし、2 ~ 3 営業日以内に返信します。

  • アプリがホワイトリストに登録されていると言われたら、Twitter 開発者ポータルでアプリの設定を更新します。apps.twitter.comにサインインして、次の操作を行います。

    1. [設定] タブで、利用規約とプライバシー ポリシーの URL を追加します。
    2. [アクセス許可] タブで、トークンのスコープを変更して電子メールを要求します。このオプションは、アプリがホワイトリストに登録された後にのみ表示されます。

コードに手を入れる

Twitter フレームワークの使用:

ユーザーのメールアドレスを取得する

-(void)requestUserEmail
    {
        if ([[Twitter sharedInstance] session]) {

            TWTRShareEmailViewController *shareEmailViewController =
            [[TWTRShareEmailViewController alloc]
             initWithCompletion:^(NSString *email, NSError *error) {
                 NSLog(@"Email %@ | Error: %@", email, error);
             }];

            [self presentViewController:shareEmailViewController
                               animated:YES
                             completion:nil];
        } else {
            // Handle user not signed in (e.g. attempt to log in or show an alert)
        }
    }

ユーザー プロファイルを取得する

-(void)usersShow:(NSString *)userID
{
    NSString *statusesShowEndpoint = @"https://api.twitter.com/1.1/users/show.json";
    NSDictionary *params = @{@"user_id": userID};

    NSError *clientError;
    NSURLRequest *request = [[[Twitter sharedInstance] APIClient]
                             URLRequestWithMethod:@"GET"
                             URL:statusesShowEndpoint
                             parameters:params
                             error:&clientError];

    if (request) {
        [[[Twitter sharedInstance] APIClient]
         sendTwitterRequest:request
         completion:^(NSURLResponse *response,
                      NSData *data,
                      NSError *connectionError) {
             if (data) {
                 // handle the response data e.g.
                 NSError *jsonError;
                 NSDictionary *json = [NSJSONSerialization
                                       JSONObjectWithData:data
                                       options:0
                                       error:&jsonError];
                 NSLog(@"%@",[json description]);
             }
             else {
                 NSLog(@"Error code: %ld | Error description: %@", (long)[connectionError code], [connectionError localizedDescription]);
             }
         }];
    }
    else {
        NSLog(@"Error: %@", clientError);
    }
}

それが役に立てば幸い !!!

于 2015-05-28T13:00:37.040 に答える