Question

Moi et quelques gars ici travaillent sur un démarrage. Nous utilisons actuellement Google API pour gérer OpenID enregistrement et connexion à notre application, mais nous voulons migrer vers un modèle d'enregistrement des utilisateurs plus facile. Et pour cela, nous avons besoin de savoir s'il y a un moyen que nous pouvons détecter si un e-mail (non gmail) est déjà un compte Google. Y at-il un moyen d'obtenir cette information de Google Single Sign-on API?

Merci pour votre aide précédente! :)

Était-ce utile?

La solution

Vous ne pouvez pas faire cela. Je ne pense pas que Google pourrait vous dire que sans le consentement de l'utilisateur.

Vous pourriez cependant voir si le domaine est un domaine Google Apps en utilisant ce que l'URL Découverte: https://www.google.com/accounts/o8 /site-xrds?hd=mail.moztw.org

A noté que l'administrateur du domaine peut-être pas correctement installé support OpenID pour le domaine. La diapositive ont discuté en détail: http://www.slideshare.net/timdream/google-apps-account -Comme-openid

Autres conseils

Si vous êtes sur un Mac, ouvrez le Terminal et entrez $ host {example.com} pour déterminer si leur e-mail est hébergé par Google.

Par exemple:

$ host yelp.com
yelp.com has address 104.16.57.23
yelp.com has address 104.16.56.23
yelp.com mail is handled by 1 ASPMX.L.GOOGLE.com.
yelp.com mail is handled by 10 ASPMX2.GOOGLEMAIL.com.
yelp.com mail is handled by 10 ASPMX5.GOOGLEMAIL.com.
yelp.com mail is handled by 10 ASPMX3.GOOGLEMAIL.com.
yelp.com mail is handled by 5 ALT2.ASPMX.L.GOOGLE.com.
yelp.com mail is handled by 10 ASPMX4.GOOGLEMAIL.com.
yelp.com mail is handled by 5 ALT1.ASPMX.L.GOOGLE.com.

Ce n'est pas une solution complète, mais vous pouvez dire si quelqu'un est sur Google Apps en regardant les enregistrements MX de leur domaine. Le lien dans la réponse n'a pas fonctionné pour moi, afin que peut-être une meilleure solution.

Je le fais en ayant un fichier fictif, auquel ajouter l'adresse e-mail en utilisant la fonction addViewer. Je le fais dans un try ... catch. Si une erreur est prise alors je mets mon drapeau local pour dire « pas un compte Google ». Si aucune erreur, je les supprimer alors comme un spectateur de mon dossier factice et mis mon drapeau pour dire l'adresse e-mail est un compte Google legit.

Je travaillais sur la suggestion de Doug et il fonctionne. Assurez-vous que l'utilisateur (efficace) en invoquant la fonction a le droit d'appeler addViewer. Une astuce pour y arriver est d'assurer que la routine est appelée à partir d'une routine de déclenchement, de sorte que le propriétaire du script est l'utilisateur effectif.

function checkIfGoogleAccount(emailAddress) {
  try {
    SpreadsheetApp.getActiveSpreadsheet().addViewer(emailAddress) ;
    SpreadsheetApp.getActiveSpreadsheet().removeViewer(emailAddress) ;
    return true ;
  }
  catch(err) {
    return false ;
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top