Использование области user.profile и user.email и/oauth2/v2/userinfo не возвращает никаких настраиваемых полей (в моем случае Department) или телефонных номеров. Эти поля отображаются в каталоге общих доменных контактов.Как получить информацию о профиле Google, в том числе настраиваемые поля из пользователя домена Apps?
Возможно, есть URL-адрес для определенного домена приложения, например/oauth2/{DOMAIN}/v2/userinfo?
Поддерживает ли API/сервис какие-либо пользовательские поля?
Есть ли способ вымыть это для работы?
Прочитайте доступ к своему собственному профилю домена общих контактов домена, который подключен к вашей учетной записи, не должен быть таким сложным.
Я бы предпочел решение без администратора, потому что мой домен использует общие карты доступа с аутентификацией SAML, поэтому я не могу просто хранить учетные данные администратора (пользователь: пароль) в приложении App Engine и получить доступ к/m8/feed , Если есть поток для доступа к общим контактам домена (с настраиваемыми полями) с предварительно авторизированным ключом пользователя и тайной, мне бы хотелось узнать, как это работает.
EDIT Джей Ли прибил его «https://www.google.com/m8/feeds/gal/ {домен}/полный»
Вот доказательство концепции сценария с помощью Google Apps Script (я добавлю окончательный вариант OAuth2, когда я закончу его)
function getGal(email, passwd, domain) {
var res = UrlFetchApp.fetch("https://www.google.com/accounts/ClientLogin", {
contentType: "application/x-www-form-urlencoded",
method: "post",
payload: { "Email": email, "Passwd": passwd, "accountType": "HOSTED", "service":"cp" }
});
var auth = res.getContentText().match(/Auth=(.*)/i)[1];
Logger.log("Auth: " + auth);
res = UrlFetchApp.fetch("https://www.google.com/m8/feeds/gal/" + domain + "/full", {
method: "get",
headers: { "Authorization": "GoogleLogin auth=" + auth, "GData-Version": "1.0" }
});
Logger.log(res.getHeaders());
Logger.log(res.getContentText());
}
EDIT 2 Версия OAuth, которая возвращает JSON и только информацию для пользователя, обращающегося к скрипту.
function googleOAuthM8() {
var oAuthConfig = UrlFetchApp.addOAuthService("m8");
oAuthConfig.setRequestTokenUrl('https://www.google.com/accounts/OAuthGetRequestToken?scope=https://www.google.com/m8/feeds/');
oAuthConfig.setAuthorizationUrl('https://www.google.com/accounts/OAuthAuthorizeToken');
oAuthConfig.setAccessTokenUrl('https://www.google.com/accounts/OAuthGetAccessToken');
oAuthConfig.setConsumerKey('anonymous');
oAuthConfig.setConsumerSecret('anonymous');
return {oAuthServiceName:"m8", oAuthUseToken:'always'};
}
function getGal(domain) {
res = UrlFetchApp.fetch("https://www.google.com/m8/feeds/gal/" + domain + "/full?alt=json&q=" + Session.getActiveUser().getEmail(), googleOAuthM8());
Logger.log(res.getHeaders());
Logger.log(res.getContentText());
}
Вам нужно использовать API данных Google? – likeitlikeit
@likeitlikeit - Если вы делаете вывод, я делаю что-то вроде того, чтобы нажимать пользовательские данные прямо из LDAP в Google Doc и ссылаться на этот документ в моих приложениях, что для меня не является жизнеспособным решением (к сожалению). –
Что-то вроде этого могло быть решением. – likeitlikeit