1

Facebook リクエストからメールは出力されません。どうすればこれを入手できますか? ログイン/サインアッププロセスに必要です

- (void)request:(FBRequest *)request didLoad:(id)result{

    NSLog(@"FACEBOOK RESULT %@ ", result);

}

これは最初のリクエストです:

[facebook requestWithGraphPath:@"me" andDelegate:self];
4

2 に答える 2

2

emailプロパティを取得するには、追加のアクセス許可を要求しないと取得できません。 https://developers.facebook.com/docs/reference/login/email-permissions/ を参照してください

私のアプリケーションは、次のコードを使用して、最初に Facebook セッションが有効かどうかを確認します (self.facebookは でFacebook初期化されたオブジェクトですinitWithAppId)。

  if (![self.facebook isSessionValid]) { 

    NSArray* permissions =  [NSArray arrayWithObjects: @"email", nil];

    [self.facebook authorize:permissions];

  } else { 
    // Since we have a valid session we can get the userinfo
    [self getFacebookUserInfo];
  }

アプリケーション プロンプトには、「Using this app requires: * Your basic info * Your e-mail address」と表示されます。ユーザーがこの情報を取得することを承認した場合、返されたアクセス トークンには、電子メール アドレスを取得できるように設定されたビットが含まれます。 、および以下が機能します。

-(void)getFacebookUserInfo {
  [self.facebook requestWithGraphPath:@"me" andDelegate:self];
}

あなたの方法が利用可能であると仮定します-(void)request:(FBRequest *)request didLoad:(id)result(そうであるように見えます)。

SSO (Single Sign On) の完全なフローは、この投稿では説明されていないことに注意してください詳細。

また、iOS 6 の廃止された API を使用している可能性があることにも注意してください。先に進む前に、 https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-2.0-to-3.1/を確認する必要があります。

于 2013-02-21T02:48:06.237 に答える
1

2.4 API では、受け取りたいユーザー データ項目を指定するためにパラメーターが使用されます。例えば:

FBSDKGraphRequestConnection *connection2 = [[FBSDKGraphRequestConnection alloc] init];

FBSDKGraphRequest *selfRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?"
                                                                   parameters:@{@"fields":@"id,name,first_name,last_name,verified,email"}];
[connection2 addRequest:selfRequest
      completionHandler:^(FBSDKGraphRequestConnection *innerConnection, NSDictionary *result, NSError *error) {
          if (error) {
              NSLog(@"%@", error);
              return;
          }

          if (result) {
              // get user data
              NSMutableDictionary *facebookUserData = [NSMutableDictionary dictionaryWithDictionary:result];
              NSLog(@"result=%@", result);

ただし、現在開発者向けにメールが返されておらず、現在開発中のアプリであるため、彼らは明らかに大きな時間を台無しにしました。ちなみに、フィードバックシステムで承認されたアプリが必要なため、開発中のアプリのバグを送信することは不可能です...

承認のためにアプリを送信する前に何かが機能することを確認するつもりだと彼らはどのように考えているのでしょうか、またはFacebook統合をテストする前に承認できないアプリのApp Store IDを要求するロジックは何ですか?最大限。

その上、ある日から別の日に動作するコードを壊すことに決めた Facebook の天才は誰ですか?

于 2015-07-17T10:01:22.497 に答える