電子メールがGoogleアカウントであるかどうかを検出する方法は?
-
27-09-2019 - |
質問
私とここの何人かの人たちはスタートアップに取り組んでいます。現在、Google OpenID APIを使用して登録を管理し、アプリにログインしていますが、より簡単なユーザー登録モデルに移行したいと考えています。このために、メール(Gmailではない)がすでにGoogleアカウントであるかどうかを検出できる方法があるかどうかを知る必要があります。 GoogleシングルサインオンAPIからこの情報を取得する方法はありますか?
あなたの助けをありがとう! :)
解決
それをしてはいけない。 Googleがユーザーの同意なしにそれを伝えることができるとは思わない。
ただし、これをDiscovery URLとして使用して、ドメインがAA Google Appsドメインであるかどうかを確認できます。https://www.google.com/accounts/o8/site-xrds?hd=mail.moztw.org
ドメインの管理者は、ドメインのOpenIDサポートを適切にインストールしていない可能性があることに注意してください。私のスライドはこれについて詳しく説明しました:http://www.slideshare.net/timdream/google-apps-account-as-openid
他のヒント
Macに乗っている場合は、ターミナルを開いて入力してください $ host {example.com}
彼らのメールがGoogleによってホストされているかどうかを判断するため。
例えば:
$ 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.
これは完全な解決策ではありませんが、ドメインのMXレコードを見て誰かがGoogleアプリに参加しているかどうかを知ることができます。答えのリンクは私にとってはうまくいかなかったので、それはより良い解決策かもしれません。
ダミーファイルを使用してこれを行い、AddViewer関数を使用してメールアドレスを追加します。私はこれを試してみてください...キャッチ。エラーが発生した場合、「Googleアカウントではない」と言うようにローカルフラグを設定します。エラーがない場合は、ダミーファイルの視聴者としてそれらを削除し、メールアドレスが合法的なGoogleアカウントであるとフラグを設定します。
私はダグの提案を解決しました、そしてそれはうまくいきます。関数を呼び出す(効果的な)ユーザーがAddViewerを呼び出す権利があることを確認してください。これを達成するためのトリックは、トリガールーチンからルーチンが呼び出されることを確認することです。したがって、スクリプトの所有者が効果的なユーザーになります。
function checkIfGoogleAccount(emailAddress) {
try {
SpreadsheetApp.getActiveSpreadsheet().addViewer(emailAddress) ;
SpreadsheetApp.getActiveSpreadsheet().removeViewer(emailAddress) ;
return true ;
}
catch(err) {
return false ;
}
}