2017-07-25 4 views
0

Actuellement, j'ai un script Python qui envoie un message à relâcher. Je veux ajouter des liens supplémentaires mais je n'arrive pas à comprendre comment. Ceci est mon code actuel.Python - Ajout de liens dans l'API Slack

def post_slack(): 
    """Post slack message.""" 
    try: 
     token = 'xoxp-67503713541-67496795984-216701772021-c23bdfbe9635f1f63a4c802697147dfc' 
     slack = Slacker(token) 

     obj = slack.chat.post_message(
      channel='#dataworksapp', 
      as_user= 'false', 
      username = 'DataWorksBot', 
      attachments=[ 
     { 
      "color": "033E96", 
      "title": "Pressure Transducer Weekly Information", 
      "title_link": "https://console.cloud.google.com/storage/browser/firebase_results/?project=dataworks-356fa", 
      "author_name": "Master Table", 
      "author_link": "https://bigquery.cloud.google.com/table/dataworks-356fa:FirebaseArchive.PT_MasterTable?tab=preview", 
      "text": "https://bigquery.cloud.google.com/table/dataworks-356fa:FirebaseArchive.PT_MasterTable?tab=preview", 
      "fields": [ 
       { 
        "title": "Amount Used:", 
        "value": "countPTserial1", 
        "short": 'true' 
       },{ 
        "title": "Distinct Device ID's:", 
        "value": "countPTid1", 
        "short": 'true' 
       },{ 
        "title": "Total Connection Time (hr):", 
        "value": "sumPTct2", 
        "short": 'true' 
       } 
      ] 

Je n'ai pas pu trouver d'autres catégories de terrain qui seraient similaires à « author_link » que je pourrais égale à un lien. Je peux définir "text" égal à un lien, mais si je devais le faire de cette façon, je préférerais avoir le lien juste comme un seul mot au lieu de l'ensemble du lien laid envoyé dans le message.

En outre, je ne peux pas définir le lien égal à une variable, puis définir "text" égal à cette variable. Quand je fais cela est encore montre le lien entier. Merci pour l'aide!

Répondre

2

Je vois quelques options ici. Dans le champ de texte, vous pouvez modifier l'affichage de votre lien en l'entourant de <> symboles et en ajoutant un | delimiter:

"text": "Click me: <https://foo.com|foo>"

qui afficherait comme "moi Cliquez: foo"

Ou vous pouvez créer des champs supplémentaires pour chaque lien comme ceci:

"fields": [ 
      { 
       "title": "Link 1", 
       "value": "<http://foo.com|foo>", 
       "short": false 
      }, 
          { 
       "title": "Link 2", 
       "value": "<http://bar.com|bar>", 
       "short": false 
      } 
     ] 
+0

je votre première suggestion et travaillé parfaitement. Je vous remercie! –