2017-07-22 3 views
3

L'utilisation de l'application Logic dans Azure permet de publier un message dans un dossier. Cela fonctionne très bien avec un message texte standard. Quand je change rien pour poster des pièces jointes est envoyé aussi:L'application Azure Logic n'envoie pas de pièces jointes à un espace vide

    "inputs": { 
         "host": { 
          "connection": { 
           "name": "@parameters('$connections')['slack']['connectionId']" 
          } 
         }, 
         "method": "post", 
         "path": "/chat.postMessage", 
         "queries": { 
          "attachments": [ 
           { 
            "color": "danger", 
            "fallback": "Azure alert attachment.", 
            "fields": [ 
             { 
              "title": "Check list" 
             }, 
             { 
              "value": "Check services on VM0 and VM1" 
             }, 
             { 
              "value": "If you cannot fix this issue make sure someone else can" 
             } 
            ], 
            "pretext": "<!channel> Action required", 
            "text": "`'@{triggerBody()['context']['name']}'` API down - '@{triggerBody()['context']['resourceName']}' Details: @{body('Http')['id']}", 
            "ts": 123456789 
           } 
          ], 
          "channel": "#devops", 
          "text": "SYST ALERT" 
         } 
        } 
+0

Avez-vous déjà trouvé ce qui se passait avec ceci? Je suis actuellement confronté au même problème et je n'arrive pas à résoudre le problème. – Andrew

Répondre

0

En regardant dans cela, il semble que la logique Apps ne prend pas en charge le type de pièce jointe. S'il vous plaît upvote à uservoice @

https://feedback.azure.com/forums/287593-logic-apps/suggestions/31896379-add-support-for-attachments-with-slack-post-messag

Donc, avec cela le cas, comment pouvons-nous le faisons aujourd'hui. Slack prend en charge les Webhooks entrants ainsi que les API. J'ENABLED cela dans Logic Apps à l'aide API chat.PostMessage pour plus de détails sur l'aspect de l'API à:

https://api.slack.com/methods/chat.postMessage/test

Le problème fondamental de cette approche est l'exigence d'un jeton, dans mon exemple je l'ai utilisé un jeton de test de

https://api.slack.com/custom-integrations/legacy-tokens

Ce n'est pas la meilleure approche (mais j'avais des problèmes en utilisant le webhook entrant continuera à essayer cette approche et après si j'ai succès là-bas) d'une sécurité PoV mais ne faire le travail terminé. Le code de travail final est le suivant:

{ 
    "$connections": { 
     "value": { 
      "office365": { 
       "connectionId": "<ConnectionID", 
       "connectionName": "office365", 
       "id": "<ID>" 
      } 
     } 
    }, 
    "definition": { 
     "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", 
     "actions": { 
      "Condition_3": { 
       "actions": { 
        "HTTP": { 
         "inputs": { 
          "body": "?token=<Token>&channel=C8270DY6L&attachments=%5B%7B%22fallback%22%3A%22Requiredplain-textsummaryoftheattachment.%22%2C%22color%22%3A%22%2336a64f%22%2C%22pretext%22%3A%22Optionaltextthatappearsabovetheattachmentblock%22%2C%22author_name%22%3A%22BobbyTables%22%2C%22author_link%22%3A%22http%3A%2F%2Fflickr.com%2Fbobby%2F%22%2C%22author_icon%22%3A%22http%3A%2F%2Fflickr.com%2Ficons%2Fbobby.jpg%22%2C%22title%22%3A%22SlackAPIDocumentation%22%2C%22title_link%22%3A%22https%3A%2F%2Fapi.slack.com%2F%22%2C%22text%22%3A%22Optionaltextthatappearswithintheattachment%22%2C%22fields%22%3A%5B%7B%22title%22%3A%22Priority%22%2C%22value%22%3A%22High%22%2C%22short%22%3Afalse%7D%5D%2C%22image_url%22%3A%22http%3A%2F%2Fmy-website.com%2Fpath%2Fto%2Fimage.jpg%22%2C%22thumb_url%22%3A%22http%3A%2F%2Fexample.com%2Fpath%2Fto%2Fthumb.png%22%2C%22footer%22%3A%22SlackAPI%22%2C%22footer_icon%22%3A%22https%3A%2F%2Fplatform.slack-edge.com%2Fimg%2Fdefault_application_icon.png%22%2C%22ts%22%3A123456789%7D%5D&pretty=1", 
          "method": "POST", 
          "uri": "https://slack.com/api/chat.postMessage" 
         }, 
         "runAfter": {}, 
         "type": "Http" 
        } 
       }, 
       "expression": "@equals(triggerBody()?['HasAttachment'], True)", 
       "runAfter": {}, 
       "type": "If" 
      } 
     }, 
     "contentVersion": "1.0.0.0", 
     "outputs": {}, 
     "parameters": { 
      "$connections": { 
       "defaultValue": {}, 
       "type": "Object" 
      } 
     }, 
     "triggers": { 
      "When_a_new_email_arrives": { 
       "inputs": { 
        "host": { 
         "connection": { 
          "name": "@parameters('$connections')['office365']['connectionId']" 
         } 
        }, 
        "method": "get", 
        "path": "/Mail/OnNewEmail", 
        "queries": { 
         "folderPath": "Inbox", 
         "importance": "Normal" 
        } 
       }, 
       "recurrence": { 
        "frequency": "Minute", 
        "interval": 3 
       }, 
       "splitOn": "@triggerBody()?['value']", 
       "type": "ApiConnection" 
      } 
     } 
    } 
}