2016-10-02 4 views
0

Ich bin neu bei Slack Bot Integrationen. Ich möchte Tasten auf meine Botschaft haben, so meinen CodeSlack Bot interaktive Nachrichten

message = { 
     "text": "Would you like to play a game?", 
     "attachments": [ 
      { 
       "text": "Choose a game to play", 
       "attachment_type": "default", 
       "actions": [ 
        { 
         "name": "chess", 
         "text": "Chess", 
         "type": "button", 
         "value": "chess" 
        } 
       ] 
      } 
     ] 
    } 


return sc.api_call("chat.postMessage", 
        as_user="true", 
        channel=channel_id, 
        text=message) 

aber in Slack Kanal ist sehe ich diese

text=Would+you+like+to+play+a+game%3F&attachments=%5B%7B%27text%27%3A+%27Choose+a+game+to+play%27%2C+%27attachment_type%27%3A+%27default%27%2C+%27actions%27%3A+%5B%7B%27text%27%3A+%27Chess%27%2C+%27type%27%3A+%27button%27%2C+%27name%27%3A+%27chess%27%2C+%27value%27%3A+%27chess%27%7D%5D%7D%5 

warum dies geschehen ??

Dank

+1

Das sieht so aus, als ob es etwas zu tun mit dem Slack-API-Wrapper, den Sie verwenden, ist. Haben Sie versucht, es manuell mit einem HTTP-Aufruf mit 'Anfragen' zu tun? Deine Nachricht formatiert auch [sieht gut aus.] (Https://api.slack.com/docs/messages/builder?msg=%7B%22text%22%3A%22Would%20you%20like%20to%20play%20a % 20Game% 3F% 22% 2C% 22Anhänge% 22% 3A% 5B% 7B% 22Text% 22% 3A% 22Wähle% 20a% 20Game% 20to% 20Play% 22% 2C% 22attachment_type% 22% 3A% 22default% 22% 2C % 22Aktionen% 22% 3A% 5B% 7B% 22Name% 22% 3A% 22Kontakt% 22% 2K% 22Trage% 22% 3A% 22Schach% 22% 2K% 22Typ% 22% 3A% 22Knopf% 22% 2K% 22Wert% 22 % 3A% 22chess% 22% 7D% 5D% 7D% 5D% 7D) –

+0

Beachten Sie, dass 'chat.postMessage' keine JSON-Post-Bodys akzeptiert. Sie müssen Ihre Nachricht als 'x-www-form-urlencoded' Parameter senden. Darüber hinaus erwartet das Feld "Anhänge" JSON, aber es muss URL-codierter JSON sein. Ein reiner JSON-Nachrichtentext wie dieser funktioniert nicht mit der Web-API. –

Antwort

0

Ich habe es selbst nicht getestet, aber ich denke, man kann so etwas wie dies versucht zu tun:

es nicht funktioniert, würde ich versuchen, schließen ein
message = "Would you like to play a game?" 
attachments = [{ 
       "text": "Choose a game to play", 
       "attachment_type": "default", 
       "actions": [ 
        { 
         "name": "chess", 
         "text": "Chess", 
         "type": "button", 
         "value": "chess" 
        } 
       ]}] 

sc.api_call("chat.postMessage", 
      channel=channel_id, 
      text=message, 
      as_user="true", 
      attachments=attachments) 

Bei " title "Feld im Anhang wie folgt:

attachments = [{ 
        "title": "new title", 
        ... 
Verwandte Themen