Использование учетной записи службы Google для доступа к gmail api из контекстного гаджета

То, что я хотел бы сделать, это получить доступ к API gmail / calendar, используя javascript из контекстного гаджета gmail (а не перенаправлять запросы куда-либо еще).
Я также хочу сделать это, используя служебную учетную запись для проверки подлинности, чтобы доступ контролировался через настройку / домен гаджета, а пользователю никогда не предлагалось вводить какие-либо данные.

Документация вокруг этой области представляет собой массу устаревшей и запутанной информации, поэтому трудно даже сказать, предполагается ли это возможным или нет.

Я пробовал несколько разных подходов с небольшим успехом.

Согласно https://developers.google.com/gadgets/docs/basic?csw=1 написанию гаджетов OAuth больше не поддерживается. Потратил много времени на то, чтобы разобраться с этим подходом, прежде чем заметить этот комментарий и отказаться от него.

Затем попытался использовать gadgets.io.makeRequest с https://developers.google.com/gadgets/docs/reference/, но это не подходило для того, что я хотел, слишком много собственное решение. Я не имел успеха с этим, поэтому отказался от него, чтобы попробовать что-то еще.

Затем попробовал gapi.auth.authorize https://developers.google.com/api-client-library/javascript/features/authentication На первый взгляд это показалось многообещающим, но я не могу найти никакой информации об использовании его с учетной записью службы, и Я просто получаю ошибки, когда пытаюсь его использовать (но по крайней мере ошибки кажутся движением вперед!).

Мой текущий код для этого соответствует

function connectToGmail() {
    gapi.client.setApiKey(API_KEY);
    window.setTimeout(checkAuth,1);
}

function checkAuth() {
    var parameters = {
        client_id: OAUTH2_CLIENT_ID,
        scope: OAUTH2_SCOPES,
        immediate: true,
        output: 'embedded'
    };
    gapi.auth.authorize(parameters, function(result) {
        console.log('login complete');
        console.log(gapi.auth.getToken());
    });
}

но обратный вызов авторизации никогда не вызывается.
Я тоже пытался добавить к параметрам hd: и несколько других недокументированных значений, которые я видел, которые я использовал для поиска деталей.

В разных экспериментах у меня вообще эта ошибка в консоли браузера

Отказался отображать " https://accounts.google.com/o/oauth2/auth?client_id=**********. Googleusercontent.com&response_type=token&state=1847286098%7C0.1045275236" в кадре, поскольку он установите "X-Frame-Options" на "SAMEORIGIN".

Справедливо, я понимаю ту же самую причину возникновения этой проблемы, но хотелось бы, чтобы она дала мне ошибки посредством обратного вызова - я не собираюсь открывать здесь что-нибудь - вот почему я хочу использовать служебную учетную запись!

Если я вручную перехожу на этот URL, я вижу сломанную страницу робота,

  1. Это ошибка
    Ошибка: invalid_client
    нет зарегистрированного происхождения

Детали запроса
немедленная = истина
response_type = маркер
scope = https://www.googleapis.com/auth/gmail.readonly
redirect_uri = PostMessage
прокси =oauth2relay869439690
состояние =1847286098|0,1045275236
origin = https://uvh02lohhb14dcmd9rb9buet1dr4b61j-a-gm-opensocial.googleusercontent.com/
include_granted_scopes= верно
HD = ***********. co.uk
client_id =.apps.googleusercontent.com
гл = еп

Я не думаю, что там есть что-то полезное, просто для полноты изложения того, что я пробовал.

Любые идеи о том, если это - есть / должно быть / будет - возможно, и если нет какие-либо предложения для других подходов?

0 ответов

Другие вопросы по тегам