Microsoft Flow中的多步身份验证和令牌传递

时间:2019-07-16 21:40:01

标签: json ms-flow

我正在使用CRM应用程序的API。该API要求调用Authenticate方法来获取会话令牌。所有后续的API请求都必须包含此令牌,该令牌在检测到10分钟的不活动状态之前一直保持有效-然后该令牌变为无效,必须重新生成。

我正在尝试在Flow中创建一个自定义连接器以与此API配合使用,但是我很难确定如何将这些步骤链接在一起以及如何从第一个响应中存储令牌,以便它可以包含在以后的所有请求中。

我的业务案例是这样:

  • 允许用户将电子邮件发送到特定的电子邮件地址。
  • 收到电子邮件后,获取发件人的地址。
  • 搜索数据库以查找具有匹配电子邮件地址的联系人。
  • 假设匹配,则创建一个与联系人关联的新CS案例。在CS案例创建中使用主题/正文/时间戳/附件。将案例分配给特定用户。
  • 发送已创建新案例的电子邮件警报分发列表。
  • 假设不匹配,请针对“全部捕获”联系人创建新的CS案例,并注意,必须在通讯簿中创建发件人,以免将来再次发生这种情况。
  • 通过电子邮件回复发件人,确认创建了带有案例号的故障单作为参考。

在Postman中一切正常。我什至尝试以V1格式导出我的收藏集,以便可以将其导入到Flow中,但这似乎也没有帮助。我只是不确定如何在Flow中定义所有内容,以便能够检索令牌并将其存储以供后续API调用。

在邮递员中,我的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 个答案:

没有答案