SlackBot OpenModal Error: „Missing Charset”
Chcę wykonać wywołanie API przez Zapier, aby otworzyć modal w Slacku.
Ale zawsze otrzymuję błąd:
ok: false
error: invalid_json
warning: missing_charset
response_metadata:
warnings:
1: missing_charset
To jest moja treść żądania:
{
"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"
}
}
]
}
}
Co ja robię źle?
Tutaj zrzut ekranu całego połączenia:
Odpowiedzi
Rozwiązanie można znaleźć w tej dokumentacji :
Nie można przeanalizować kodu JSON, który umieściłeś w treści POST. Może to być spowodowane tym, że w rzeczywistości nie jest to format JSON lub być może nieprawidłowo ustawiłeś nagłówek typu treści HTTP. Upewnij się, że klucze atrybutów JSON są ciągami znaków opakowanymi w znaki podwójnego cudzysłowu (").
Wystarczy usunąć jeden przecinek, to powinno działać:
{
"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"
}
}
]
}
}
Możesz usunąć ostrzeżenie, missing_charsetjeśli ustawisz zestaw znaków dla nagłówka typu zawartości. Na przykład:
Content-type: application/json; charset=utf-8