2017-04-25 23 views
0

我用這個語句來從Twitter獲取用戶的電子郵件從Twitter獲取電子郵件時:斯威夫特3:無試圖用面料

I tested this code and it returns a nil for the email address!          ` let client = TWTRAPIClient.withCurrentUser() 
        let request = client.urlRequest(withMethod: "GET", 
                url: "https://api.twitter.com/1.1/account/verify_credentials.json", 
                   parameters: ["include_email": "true", "skip_status": "true"], 
                   error: nil) 

        client.sendTwitterRequest(request) { response, data, connectionError in 
         if (connectionError == nil) { 

          do{ 
           let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any] 
           print("Json response: ", json) 
           let firstName = json["name"] 
           let lastName = json["screen_name"] 
           let email = json["email"] 
           print("First name: ",firstName!) 
           print("Last name: ",lastName!) 
           print("Email: ",email!) 
          } catch { 

          } 

         } 
         else { 
          print("Error: \(connectionError)") 
         } 
        } 

`

但不幸的是它返回零!

我已將我的應用列入白名單,並且我收到了來自Twitter團隊的一封電子郵件,告訴我所有授權都已授予我的應用。

email from Twitter

+0

Twitter API停止在其響應中返回emailID。 –

回答

1

沒有配置問題與您的應用程序和Twitter SDK。由於用戶未從他的個人資料隱私設置中獲得對Email字段的訪問權限,因此您得到的回報爲零。您可以更改隱私設置並開始在您的代碼中獲取此值。 OR用戶尚未在帳戶中添加電子郵件ID。

+0

我使用相同的Twitter帳戶在我的Android應用程序上收到電子郵件。我嘗試了Fabric文檔中的代碼並不缺乏。 [鏈接](https://docs.fabric.io/apple/twitter/log-in-with-twitter.html#request-user-email-address) –

0

該API不會向您返回電子郵件地址。如果您對用戶的電子郵件地址感興趣,則必須在用戶自己的應用程序中向用戶提出這個問題,這是完全不同的行爲。

+0

你能給這個代碼片段嗎? –

+0

//夫特 令客戶= TWTRAPIClient.clientWithCurrentUser() 令請求= client.URLRequestWithMethod( 「GET」, URL: 「https://api.twitter.com/1.1/account/verify_credentials.json」, 參數:[「include_email」:「true」,「skip_status」:「true」], 錯誤:無) client.sendTwitterRequest(req){response,data,connectionError in} – KKRocks

+0

check:https://docs.fabric .io/apple/twitter /登錄與twitter.html – KKRocks