1

沒有電子郵件從Facebook的要求輸出。我如何得到這個?我需要爲我登錄/註冊過程Facebook的請求不回電子郵件

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

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

} 

這是初始請求:

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

一個'FBRequest'可能是許多類型的請求給Facebook的,所以要根據您的實際要求是什麼,將決定是你'result'對象將包含。您需要提供有關實際請求的更多詳細信息,以確定您未收到預期信息的原因。 – Joe 2013-02-20 23:48:56

+0

已更新。請重新考慮這個問題,如果那是你的感謝,請摘下-1。 – GangstaGraham 2013-02-21 01:18:32

+0

當您首次將用戶連接到FB時,您是否擁有'email'權限? – tom 2013-02-21 02:48:09

回答

2

email財產不能沒有請求額外的許可來獲得它來獲得,見https://developers.facebook.com/docs/reference/login/email-permissions/

我的應用程序使用下面的代碼首先檢查了Facebook會話是否有效(self.facebookinitWithAppId初始化的Facebook對象):

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]; 
    } 

您的應用程序的提示會顯示「使用此應用程序需要:*您基本信息*您的電子郵件地址「如果用戶授權您獲取此信息,您的訪問令牌返回將設置位以允許您獲取電子郵件地址,以下內容將生效:

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

假設你-(void)request:(FBRequest *)request didLoad:(id)result方法是可用的(這似乎是)。

請注意,本文沒有給出完整的SSO(單點登錄)流程,您需要詳細瞭解https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/#implementsso

還請注意,你可能會使用已過時的API的iOS 6,你應該看看https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-2.0-to-3.1/繼續之前。

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); 

然而,他們顯然搞砸了很大的時間,因爲電子郵件並不是目前正在開發應用程序返回對於開發者來說,目前。 順便說一句,這是不可能的應用程序提交Bug的發展,因爲它們需要在反饋系統已批准的應用...

我不知道他們怎麼想,我們要確保工作的東西之前提交應用程序進行批准,還是要求一個應用程序的App Store ID無法批准的邏輯是什麼,在Facebook整合之前可以進行最充分的測試。

而且,誰是Facebook的誰決定打破從另一個工作代碼有一天,天才?

+0

嘿,我想我只是明白我的問題來自哪裏。您確定如果您使用測試版本,則無法檢索用戶的電子郵件(我沒有提交任何版本,在Play Store和iTunes中都沒有)。 – 2015-08-23 21:55:15

+0

他們在我發佈我的回覆後不久修復了它。現在它可以工作,只要您指定期望的值,例如「電子郵件」。 – 2015-08-24 09:35:37

+0

好的,但當我做了我的請求,他們返回的JSON不包含任何電子郵件,即使我問了它的許可,但這不再是一個問題了,我直接使用了REST api並獲得了我需要的所有內容,發現它有點令人失望,不使用SDK – 2015-08-24 10:45:00

相關問題