Поле типа пароля в карточном сервисе gmail

Прямо сейчас в gmail appscript у нас нет возможности добавить поле типа пароля.

Gmail Card Service for add-on имеет очень хорошую возможность показывать в нем любую вещь. Мы можем интегрироваться с любым приложением, имеющим базовый REST API. Нам нужна аутентификация для того, для чего обычно требуется поле типа пароля.

Любая работа, чтобы показать поле типа пароля?


person Siva Kumar J    schedule 20.12.2017    source источник


Ответы (2)


На данный момент в надстройке Gmail нет поддержки поля пароля.

Но мы можем построить хак для него. Надеюсь пароль нужен только в регистрационных формах. Таким образом, мы можем создать регистрационную форму с помощью HTML, которую можно будет обслуживать с помощью действия авторизации.

CardService.newAuthorizationAction().setAuthorizationUrl(loginUrl)

Здесь разместите регистрационный HTML-код на веб-сервере и передайте этот URL-адрес как «loginUrl» в приведенном выше фрагменте. Мы должны предоставить AuthorizationAction для кнопки регистрации/регистрации. Итак, когда пользователь нажимает на эту кнопку, запускается новая всплывающая страница, пользователь дает имя пользователя, пароль и т. д. при отправке мы можем закодировать все данные формы и передать их родительскому дополнению Gmail с помощью перенаправляя его на URL-адрес перенаправления сценария, который вы можете создать надстройку. Как только придет перенаправление на URL-адрес скрипта, в коде нашего дополнения будет обратный вызов, оттуда вы можете получить поля формы, которые были закодированы с HTML-страницы регистрации.

function generateNewStateToken(callbackName, payload) {
        return ScriptApp.newStateToken()
        .withMethod(callbackName)
        .withArgument("payload", JSON.stringify(payload))
        .withTimeout(3600)
        .createToken();
    }

function getRedirectURI() {
    return "https://script.google.com/macros/d/" + ScriptApp.getScriptId() + "/usercallback";
  }

var state = generateNewStateToken("registerCallback", {"signup": true});
var reg_url = <reg_url> + "?redirect_uri=" + getRedirectURI() + "&state=" + state;

function registerCallback(cbResp) {
 // to access payload which passed in state token: cbResp.parameter.payload;

// in the html serialize all the form fields or data which you want to pass to plugin as query params like: <redirect_uri>?form_data=<encoded_data>&state=<state>

//Note: here the registration HTML page should parse the URL to get the state & redirect_uri from URL.

// to access form_data: cbResp.parameter.form_data

}

Я надеюсь, что это поможет вам. Вот как мы сейчас делаем процесс регистрации/входа.

person Sabbu    schedule 27.02.2018

Похоже, вы авторизуете службу, не принадлежащую Google. См. раздел Авторизация пользовательских служб Google .

person hhsb    schedule 23.05.2018