Многоэтапная аутентификация и передача токенов в Microsoft Flow

Я работаю с API для приложения CRM. API требует вызова метода Authenticate для получения токена сеанса. Все последующие запросы API должны включать этот токен, который остается действительным до тех пор, пока не будет обнаружен 10-минутный период бездействия, а затем токен становится недействительным и должен быть восстановлен.

Я пытаюсь создать пользовательский соединитель в Flow для работы с этим API, но мне сложно разобраться, как связать эти шаги вместе и как сохранить токен из первого ответа, чтобы он мог быть включен в все будущие запросы.

Вот мой бизнес-пример:

  • Разрешить пользователям отправлять электронную почту на определенный адрес электронной почты.
  • Получив электронное письмо, получите адрес отправителя.
  • Поиск в базе данных для контакта с соответствующим адресом электронной почты.
  • Предполагая совпадение, создайте новый случай CS, связанный с контактом. Используйте Subject / Body / Timestamp / Attachments в создании CS Case. Назначить дело для конкретного пользователя.
  • Отправьте список рассылки оповещений по электронной почте о создании нового дела.
  • Если нет совпадения, создайте новые случаи CS для контакта "перехватить все" и обратите внимание, что отправитель должен быть создан в адресной книге, чтобы сценарий больше не повторялся в будущем.
  • Ответ отправителю с электронным письмом, подтверждающим создание заявки с номером дела для справки.

В Почтальоне все отлично работает. Я даже пытался экспортировать свою коллекцию в формате V1, чтобы импортировать ее в Flow, но это, похоже, тоже не помогло. Я просто не уверен, как определить все в Flow, чтобы я мог получить токен и сохранить его для последующих вызовов API.

В Postman мой метод Authenticate выглядит так:

{{BaseURL}}/Data.svc/json/AuthenticateЭто выполняет POST этого тела:

{
   "Database":"{{Database}}",
   "UID":"{{UID}}",
   "Password":"{{Password}}"
}

Успешный ответ выглядит так:

{
  "Code": 0,
  "Data": {
    "Token": "Xrww9vffhw6q4yi56s10s"
  }
}

Затем мне нужно извлечь токен из этого тела, чтобы он мог быть включен в мои различные другие запросы POST:

{{BaseURL}}/Data.svc/json/AbEntryReadЭто выполняет POST этого тела:

{
   "Token":"{{Token}}",
   "AbEntry":{
      "Criteria":{
         "SearchQuery":{
            "CompanyName":{
               "$LIKE":"ABC Company"
            }
         }
      },
      "Scope":{
         "Fields":{
            "Key":1,
            "Type":1,
            "CompanyName":1,
            "Department":1,
            "Division":1,
            "Phone":1,
            "Phone1":1,
            "Phone2":1,
            "Phone3":1,
            "Phone4":1,
            "Email":1,
            "Email1":1,
            "Email2":1,
            "Email3":1,
            "ParentKey":1,
            "Address":1
         }
      }
   }
}

Не то чтобы это особенно важно для этого примера, но ответ на этот запрос POST выглядит так:

{
  "Code": 0,
  "AbEntry": {
    "Data": [
      {
        "Key": "Q29tcGFueQkwMDEwMDIwMDA2MTMwNjM2NzExNTZDCTA=",
        "Type": "Company",
        "CompanyName": "ABC Company",
        "Department": "Sales",
        "Division": "",
        "Phone": "(444) 444-4444",
        "Phone1": "(333) 444-4444",
        "Phone2": "(222) 444-4444",
        "Phone3": "(111) 444-4444",
        "Phone4": "(144) 555-5555",
        "Email": "",
        "Email1": "",
        "Email2": "",
        "Email3": "",
        "ParentKey": null,
        "Address": "QWRkcmVzcwkwMDEwMDIwMDA2MTMwNjM2NzExNTZDCTA="
      }
  ]
}

Я просто не могу понять, как настроить соединитель в Flow, чтобы эта настройка работала. Я пытался использовать "Ключ API" для модели аутентификации, я пытался использовать "без аутентификации" - но я не могу понять это. Пока я не пропустил что-то невероятно очевидное, я не смог бы найти хорошего учебника Flow по этому конкретному сценарию.

Любая помощь или указатели на документацию по этому вопросу будут высоко оценены.

0 ответов

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