1

ここで立ち往生している部分を手伝ってもらえますか。最初にコードを見てみましょう。ここで許可を求めます

 NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithCapacity:0];
    [params setObject:facebook._appId forKey:@"client_id"];
    [params setObject:@"token" forKey:@"response_type"];
    [params setObject:[NSString stringWithCString:"email,user_about_me,read_stream,publish_stream,offline_access" encoding:NSUTF8StringEncoding] forKey:@"scope"];
    [facebook dialog:@"oauth" andParams:params andDelegate:self];
    [params release];

ここでは、グラフ API に @"me" を使用します

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

}

しかし、私が得るすべては

- (void)request:(FBRequest *)request didLoad:(id)result
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible=NO;
    NSLog(@"FB result %@", result);
}

FB の結果 ( "Justfortest Workingin", 100002369945695 )

しかし、メールアドレスを取得するにはどうすればよいですか?

4

2 に答える 2

0

正解は、fbがメールやその他のデータを返さないというものでした

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

IDと名前のみ。

簡単に入れる必要があります

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

ユーザーデータの別の呼び出し。

最後に必要なメソッドは次のようになります。

    - (void)request:(FBRequest *)request didLoad:(id)result
    {
        NSData * dt = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/me/?access_token=%@",facebook.accessToken]]];
        NSDictionary *response = (NSDictionary*)[[JSONDecoder decoder] objectWithData:dt];
        NSLog(@"fb response %@",response);
        if ([response objectForKey:@"email"]) {
            [[NSUserDefaults standardUserDefaults] setValue:[response objectForKey:@"email"] forKey:@"fbEmail"];
            [[NSUserDefaults standardUserDefaults] setValue:[response objectForKey:@"id"] forKey:@"fbId"];
            [[NSUserDefaults standardUserDefaults] setValue:facebook.accessToken forKey:@"fbToken"];
            [[NSUserDefaults standardUserDefaults] setValue:facebook.expirationDate forKey:@"fbExDate"];
            [[NSUserDefaults standardUserDefaults] synchronize];
        }
    }

そして、私はすべてのユーザーデータを入手しました。助けを求めてすべての人に感謝します。これが誰かに役立つことを願っています。また、この問題で私を助けてくれるhttp://midatlanticconsulting.comの人たちにも感謝します。

于 2012-05-04T14:51:01.340 に答える
0
facebook = [[Facebook alloc] initWithAppId:kYourAppID andDelegate:self];    
NSArray *permissions = [[NSArray alloc] initWithObjects:@"publish_stream",@"publish_actions", @"email",@"user_about_me",@"offline_access",nil];
[facebook authorize:permissions];
[permissions release];

次に、必要なものをすべて取得する必要があります

Web ブラウザの代わりにダイアログを表示するには、次のものが必要です。

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:10];
[params setObject:kFBAppId forKey:@"client_id"];
[params setObject:@"publish_stream,email,offline_access" forKey:@"scope"];
// Now popup the login dialog
[facebook dialog:@"oauth" andParams:params andDelegate:self];
于 2012-04-18T11:46:12.727 に答える