Как получить доступ к ответу аутентификации в файле триггера - PullRequest
0 голосов
/ 01 июля 2019

Когда пользователь пытается подключиться к моему приложению Zapier, я спрашиваю логин. Я использовал пользовательскую аутентификацию, вы можете увидеть код ниже.

const testAuth = (z , bundle) => 
   {
    var email = bundle.authData.email;
    var password = bundle.authData.password;
    return z.request({
      method: 'POST',
      url: 'http://mysite/check_login',
     }).then((response) => {
     if (response['status'] === 201) {
       throw new Error('Your credentials is not match with our database');
     }
     else
     {
       var obj = JSON.parse( response.content );
       var  user_id =obj.user_id;
       return user_id;
     }
   });

Это успешно выполнено, теперь я хочу использовать эти возвращаемые данные user_id в триггер page(list.js) код, указанный ниже,

const list = (z, bundle) => {
 //I WANTS TO USE THAT USER_ID OVER HERE
 //USER_ID=;
 const promise = z.request('http://mysite/list_data/'+USER_ID,
 {
   params: {} 
 });
 return promise.then((response) => response.json);
};

Пожалуйста, помогите мне, как получить доступ к ответу аутентификации в файле триггера.

Ответы [ 3 ]

0 голосов
/ 05 июля 2019

Дэвид здесь, из команды Zapier Platform.Отличный вопрос!

Обычно, вычисляемые поля будут здесь ответом, но в настоящее время невозможно использовать поля за пределами OAuth.

В вашем случае, есть два варианта:

  1. Если для пользователя есть простой и очевидный способ вручную ввести свой идентификатор, добавьте его в поля аутентификации, используя его какrequired
  2. В противном случае вам нужно будет вызвать конечную точку входа в систему, прежде чем запускать каждый триггер для получения идентификатора пользователя.У вас есть 30 секунд времени выполнения, поэтому выполнение второго запроса API должно быть выполнимым.
0 голосов
/ 10 июля 2019

Да Конечно, вместо того, чтобы отправлять user_id, который возвращается ответом авторизации, при отправке bundle.authData.email в конце URL.

const list = (z, bundle) => {
 var email=encodeURIComponent(bundle.authData.email);//Like this
 const promise = z.request('http://mysite/list_data/'+email,
 {
   params: {} 
 });
 return promise.then((response) => response.json);

};

0 голосов
/ 01 июля 2019

Создать динамическое раскрывающееся поле для триггера, как показано ниже: снимок экрана

this

для доступа к user_id во время вызова API выполнения.

Вот пример приложения, использующего функцию динамического раскрывающегося списка:

https://github.com/zapier/zapier-platform-example-app-dynamic-dropdown

Другие полезные статьи:

  1. https://platform.zapier.com/cli_tutorials/dynamic-dropdowns
  2. https://platform.zapier.com/cli_docs/docs#dynamic-dropdowns
...