2015-01-27 9 views
9

Ho integrato il kit twitter nella mia app ios seguendo questo https://dev.twitter.com/twitter-kit/ios/configure. Potrei accedere dopo l'autenticazione e vedere facilmente il mio nome twitter, ma ora voglio recuperare il mio indirizzo e-mail così ho usato TWTRShareEmailViewController che presenta all'utente una vista e-mail condivisa che restituisce null. Ho esaminato i documenti in cui hanno menzionato la mia app da autorizzare per richiedere l'autorizzazione via e-mail e ha detto di compilare questo modulo https://support.twitter.com/forms/platform non riuscendo a capire cosa fare dopo? come ottenere l'autorizzazione per l'e-mail dell'utente esattamente? Suggerire qualsiasi aiuto Grazie in anticipo.come richiedere il permesso per recuperare l'email dell'utente utilizzando il kit di twitter versione 1.2.0 in ios8?

risposta

6

Non ho trovato un modulo specifico per chiedere di essere nè autorizzato. Sono andato sul loro modulo di collegamento https://support.twitter.com/forms/platform e ho controllato l'opzione "Ho una domanda di politica API non coperta da questi punti". Hanno risposto alcuni giorni dopo e mi hanno chiesto ulteriori informazioni sull'applicazione e il suo ID app. In realtà sto aspettando la loro risposta.

EDIT:

Così, dopo diversi (un sacco) e-mail con [email protected] e qualche bug ho finalmente ottenuto whitelist. Ma l'opzione non è attualmente disponibile con Fabric, quindi dovrai creare un'app Twitter su apps.twitter.com. Basta inviare una mail con il tuo ID app o le tue chiavi. Probabilmente ti chiederanno una breve descrizione della tua app e non ci vorrà molto tempo per essere autorizzata. In bocca al lupo!

+0

Dopo molte ricerche ho scoperto che Twitter non supporta l'autorizzazione e-mail per iOS e Android, così ci aveva escluso Twitter Login dalla nostra app e basta utilizzando Facebook e collegato come il nostro requisito principale era quello di ottenere e-mail ad ogni costo. Si prega di aggiornare se trovate qualsiasi modifica su di esso. grazie ... – Mak13

+0

Oggi ho avuto una risposta e mi hanno detto che non stavo facendo la mia domanda nel posto giusto. Mi hanno suggerito di controllare la documentazione dell'API (cosa che ho già fatto ovviamente) e di cercare nella discussione degli sviluppatori (cosa che ho fatto anche io). Quindi penso di non essere pronto per essere autorizzato nella whitelist ... Quando dici che non supportano il permesso via email, questo è vero anche se sei autorizzato da Twitter? Non puoi proprio chiederlo a tutti? –

+1

Penso che possiamo ottenere e-mail se la nostra app è autorizzata coz se ci forniscono TWTRShareEmailViewController, allora ha senso supportare l'autorizzazione via e-mail se non capisco perché lo hanno fornito, ma ancora una volta sorge la domanda come faccio a farmi app in whitelist. Dai un'occhiata a questo https://blog.twitter.com/2014/introducing-fabric e vedi il segno su twitter para quello che dice. Aggiorna cosa devo fare per ottenere l'autorizzazione della app. – Mak13

4

Dopo aver conversato con [email protected], ho ricevuto la mia app nella whitelist. Ecco la storia:

  • inviare una mail a [email protected] con alcuni dettagli sulla tua app come chiave dei consumatori, collegamento App Store di un App, Collegamento a norme sulla privacy, i metadati, le istruzioni su come accedere al nostro App. Indica nella mail che desideri accedere all'indirizzo email dell'utente all'interno della tua app.

  • Esamineranno l'app e risponderanno entro 2-3 giorni lavorativi.

  • Una volta che la tua app è autorizzata, aggiorna le impostazioni dell'app nel portale per gli sviluppatori di Twitter. Accedi a apps.twitter.com e:

    1. Nella scheda 'Impostazioni', aggiungere termini di servizio e l'informativa sulla privacy URL
    2. Nella scheda 'Permessi', modificare la portata dei vostri token per richiedere e-mail. Questa opzione sarà visibile solo dopo che la tua app è stata autorizzata.

E 'tempo di codice:

-(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) 
    } 
} 

Speranza che aiuta !!!

+0

Grazie per i passaggi dettagliati. Sfortunatamente, l'e-mail che ho inviato a [email protected] è stata restituita come non recapitabile. Invierò la mia email a [email protected] come suggerito dall'altro poster e come ultima risorsa, passa attraverso il loro modulo di supporto e spero che arrivi nel posto giusto. –

+0

@NSPratik Il metodo sopra non è valido da domani, puoi aiutarmi con il nuovo metodo. Controlla qui "https://docs.fabric.io/ios/twitter/request-user-email-address.html" –

2

Invia email a [email protected] per autorizzare prima l'app di accesso twitter.

Swift 3.0 Codice in tessuto

@IBAction func btnTwitterAction(_ sender: AnyObject) { 
     Twitter.sharedInstance().logIn { (session, error) in 
      if session != nil { 
       print("signed in as \(session!.userName)"); 
       let client = TWTRAPIClient.withCurrentUser() 
       let request = client.urlRequest(withMethod: "GET", 
               url: "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true", 
                  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)") 
        } 
       } 


      } else { 
       NSLog("Login error: %@", error!.localizedDescription); 
      } 
     } 
    } 
+0

Grazie Signore! Codice impressionante: thumbsUp –

+0

Tutto funziona correttamente in questo codice tranne che per ottenere l'indirizzo email: restituisce nil. –

+0

@Fadwa_lmh, hai ottenuto la tua app Twitter autorizzata inviando un'email a [email protected]? –

0

Ho affrontato lo stesso problema di recente

Ecco cosa si dovrebbe provare se si utilizza nuovo kit Twitter

Vai

Codice:

Twitter.sharedInstance().logIn(withMethods: [.webBased,.systemAccounts,.all]) {(session, error) -> Void in 

     if (session != nil) { 
      print("signed in as \(session?.userName)"); 

      let client = TWTRAPIClient(userID: session?.userName) 
      client.loadUser(withID: (session?.userID)!, completion: { (user, error) in 

       let twitterClient = TWTRAPIClient.withCurrentUser() 
       let request = twitterClient.urlRequest(withMethod: "GET", 
               url: "https://api.twitter.com/1.1/account/verify_credentials.json", 
               parameters: ["include_email": "true", "skip_status": "true"], 
               error: nil) 


       twitterClient.sendTwitterRequest(request) { response, data, connectionError in 

        print(data!) 

        let s :String = String(data: data! as Data, encoding: String.Encoding.utf8)! 
        // 
        //   let json = try JSONSerialization.jsonObject(with: responseData as Data, options: JSONSerialization.ReadingOptions.mutableLeaves) as? [String:AnyObject] 
        // 

        Twitter.sharedInstance().sessionStore.logOutUserID((session?.userID)!) 

        if let data = s.data(using: String.Encoding.utf8) { 
         do { 
          let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any] 
          print(json!) 

         } catch { 
          print("Something went wrong") 
         } 
        } 
       } 
      }) 

     } else { 
    } 
1

Come arrivare id-mail in twitter?

Fase 1: got a https://apps.twitter.com/app/

Fase 2: cliccare su ur app> fare clic sulla scheda il permesso.

Fase 3: controllare qui la casella di posta elettronica

enter image description here

Problemi correlati