Errore OpenModal SlackBot: "Set di caratteri mancanti"

Aug 23 2020

Voglio fare una chiamata API tramite Zapier per aprire un Modal in Slack.

Ma ottengo sempre l'errore:

ok: false
error:  invalid_json
warning:    missing_charset
response_metadata:
warnings:
1:  missing_charset

Questo è il mio corpo della richiesta:

{
"token":"XXXXXXXXX",
"trigger_id":"XXXXXXXXXX",
"dialog": {
  "callback_id": "projekt-verantwortliche",
  "title": "Projektverantwortliche auswählen",
  "submit_label": "Request",
  "state": "Limo",
  "elements": [
    {
      "type": "users_select",
      "action_id": "projekt-projektleiter",
      "placeholder": {
         "type":"plain_text",
         "text":"Projektleiter auswählen"
        },
    },
     {
      "type": "users_select",
      "action_id":"projekt-berater",
      "placeholder": {
         "type":"plain_text",
         "text":"Berater auswählen"
        }
    }
  ]
}
}

Che cosa sto facendo di sbagliato?

Ecco uno screenshot dell'intera chiamata:

Risposte

1 flaxel Aug 23 2020 at 19:00

La soluzione può essere trovata in questa documentazione :

Il JSON che hai incluso nel tuo corpo POST non può essere analizzato. Ciò potrebbe essere dovuto al fatto che in realtà non è JSON o forse non hai impostato correttamente l'intestazione del tipo di contenuto HTTP. Assicurati che le chiavi degli attributi JSON siano stringhe racchiuse tra virgolette doppie (").

Devi solo rimuovere una virgola, quindi dovrebbe funzionare:

{
   "token":"XXXXXXXXX",
   "trigger_id":"XXXXXXXXXX",
   "dialog":{
      "callback_id":"projekt-verantwortliche",
      "title":"Projektverantwortliche auswählen",
      "submit_label":"Request",
      "state":"Limo",
      "elements":[
         {
            "type":"users_select",
            "action_id":"projekt-projektleiter",
            "placeholder":{
               "type":"plain_text",
               "text":"Projektleiter auswählen"
            }
         },
         {
            "type":"users_select",
            "action_id":"projekt-berater",
            "placeholder":{
               "type":"plain_text",
               "text":"Berater auswählen"
            }
         }
      ]
   }
}

Puoi rimuovere l'avviso missing_charsetse imposti il ​​set di caratteri per l'intestazione del tipo di contenuto. Per esempio:

Content-type: application/json; charset=utf-8