Pergunta

Eu e alguns caras aqui estamos trabalhando em uma partida. No momento, estamos usando a API do Google OpenID para gerenciar o registro e fazer login no nosso aplicativo, mas queremos migrar para um modelo de registro de usuário mais fácil. E para isso, precisamos saber se existe uma maneira de detectar se um email (não o Gmail) já é uma conta do Google. Existe uma maneira de obter essas informações da API de sinal único do Google?

Obrigado anterior pela sua ajuda! :)

Foi útil?

Solução

Você não pode fazer isso. Eu não acho que o Google poderia lhe dizer isso sem o consentimento do usuário.

Você pode, no entanto, ver se o domínio é o domínio AA Google Apps, use -o como URL da descoberta:https://www.google.com/accounts/o8/site-xrds?hd=mail.moztw.org

Observou que o administrador do domínio pode não instalar corretamente o suporte do OpenID para o domínio. Meu slide discutiu isso em detalhes:http://www.slideshare.net/timdream/google-apps-account-as-openid

Outras dicas

Se você está em um Mac, aberto terminal e entre $ host {example.com} Para determinar se o email está hospedado pelo Google.

Por exemplo:

$ 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.

Esta não é uma solução completa, mas você pode dizer se alguém está no Google Apps olhando os registros MX do domínio. O link na resposta não funcionou para mim, então essa pode ser uma solução melhor.

Faço isso com um arquivo dummy, ao qual adiciono o endereço de email usando a função AddViewer. Eu faço isso em uma tentativa ... pegue. Se um erro for capturado, defino minha bandeira local para dizer "não uma conta do Google". Se não houver erro, removo -os como um visualizador do meu arquivo fictício e defino meu sinalizador para dizer que o endereço de email é uma conta legítima do Google.

Eu trabalhei a sugestão de Doug e funciona. Apenas certifique -se de que o usuário (eficaz) que invocasse a função tenha o direito de chamar AddViewer. Um truque para conseguir isso é garantir que a rotina seja chamada de uma rotina de gatilho, para que o proprietário do script seja o usuário eficaz.

function checkIfGoogleAccount(emailAddress) {
  try {
    SpreadsheetApp.getActiveSpreadsheet().addViewer(emailAddress) ;
    SpreadsheetApp.getActiveSpreadsheet().removeViewer(emailAddress) ;
    return true ;
  }
  catch(err) {
    return false ;
  }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top