Как да определите дали акаунтът е акаунт в Google Apps?

Използвам API на списъка с документи на Google за .net V3 (dll версия 2.0.1.0). Използвам удостоверяване при влизане на клиент, както е описано в тази връзка https://developers.google.com/google-apps/documents-list/#authorizing_requests_with_clientlogin

Как мога да определя дали това е акаунт в Google Apps или нормален акаунт в Google?

Благодаря, Бхарат


person Raghunath Bharath    schedule 15.05.2012    source източник


Отговори (4)


Потребителските акаунти в Google са @gmail.com или рядко @googlemail.com, останалите ще бъдат акаунти в Google Apps.

person Ali Afshar    schedule 15.05.2012
comment
Благодаря. Бях мислил за това, но ми се стори много грубо. Така че си помислих дали има друг начин. Освен това имаше още едно съображение, че (какво ако) ме помолят да превключа към OAuth удостоверяване. Затова търсих начини да определя това от api. - person Raghunath Bharath; 16.05.2012
comment
Всъщност не е съвсем вярно. Възможно е да отворите акаунт в Google с всеки съществуващ имейл. Например имам акаунт, който е @free.fr, който не е домейн на Google Apps. - person Nicolas Garnier; 25.07.2012

Ако целта ви е да проверите дали даден потребител има достъп до дадена функционалност, можете да изпратите заявка до емисията с метаданни и да проверите елементите <docs:feature>.

Например функция с <docs:featureName>upload_any</docs:featureName> показва, че потребителят може да качва всякакви документи:

https://developers.google.com/google-apps/documents-list/#getting_general_information_about_a_users_account

person Claudio Cherubino    schedule 15.05.2012

Не мисля, че има много добър начин да проверите дали даден акаунт е акаунт в Google Apps.

Проверката дали имейлът е различен от @gmail.com няма да работи, защото е възможно да създадете Google акаунти със съществуващи имейл адреси.

Единственият начин, който мисля, е да проверя DNS MX записите на домейна и да видя дали някои услуги на домейна се обслужват от сървъри на Google Apps (като имейл, обслужван от gmail и т.н.), но дори и там може да се наложи да проверите повече от една услуга, тъй като някои компании на Google Apps например деактивират Gmail (или друга услуга), за да използват персонализирано решение вместо това.

person Nicolas Garnier    schedule 25.07.2012

Ако приемем, че сте включили:

https://www.googleapis.com/auth/userinfo.email

във вашите обхвати на OAuth можете да направите заявка до:

https://www.googleapis.com/oauth2/v2/userinfo

Ако това е акаунт в Google Приложения, параметър „hd“ (Хостван домейн?) ще бъде върнат от извикването с домейна на Google Приложения като стойност. Ако това е потребителски акаунт, независимо дали е @gmail.com или дори потенциален „конфликтен акаунт“, параметърът hd няма да бъде върнат. Вижте моя пример по-долу. [email protected] е акаунт в Google Apps, докато [email protected] е потребителски акаунт. Ако създам потребителски потребител в домейна на Google Apps, той ще се превърне в конфликтен акаунт и потребителският акаунт ще бъде изтласкан извън пространството на имената @jay.powerposters.org, но това все още не се е случило.

За [email protected]:

GET https://www.googleapis.com/oauth2/v2/userinfo

HTTP/1.1 200 OK
Content-length: 99
X-xss-protection: 1; mode=block
...

{
 "email": "[email protected]",
 "verified_email": true,
 "hd": "jay.powerposters.org"
}

За [email protected]:

GET https://www.googleapis.com/oauth2/v2/userinfo

HTTP/1.1 200 OK
Content-length: 71
X-xss-protection: 1; mode=block

{
 "email": "[email protected]",
 "verified_email": true
}
person Jay Lee    schedule 18.01.2013