Slack に API 経由でメッセージを投稿する

  • トークンを取得する
    • https://api.slack.com/web でページ下部の Authentication セクション にある Create token ボタンをクリックする
  • メッセージを投稿する (chat.postMessage)
    • gist4304955cdc60e16c6975

      # coding: utf-8
      
      import urllib
      import urllib2
      
      token = ''
      ch_id = ''
      
      api_url = 'https://slack.com/api/'
      method  = 'chat.postMessage'
      
      param = {
          'token'    : token,
          'channel'  : ch_id,
          'text'     : 'てすと'
      }
      
      get_url = api_url + method + '?' + urllib.urlencode(param)
      
      res = urllib2.urlopen(get_url)
      
      print res.read()
      
    • API のエントリー URL は https://slack.com/api/

    • chat.postMessage メソッドを GET で投げる。必須パラメータは token (先に取得したトークン)、text (投稿するメッセージ内容)、channel (投稿するチャンネルの ID、チャンネル名ではない) の三つ。
    • チャンネル ID を取得するには API を使うか、チャンネルのメニューにある “Add service integration…” で開く URL (https://hoge.slack.com/services/new?channel_id=CXXXXXXXX) から調べる。
    • username が未指定だと bot という名前でメッセージが投稿される。既存のユーザと重複する名前を指定した場合、hoge (bot) となる。
  • API のメソッド一覧: API Methods | Slack