33
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SlackのIncoming WebHooksを使わないで指定のChannelにPOSTする方法

Last updated at Posted at 2015-06-08

SlackのIncoming WebHooksを使わないで指定のチャンネルにPOSTする方法

Slackを無料枠で使っていて、integration limitに到達して、あーんもうってなっちゃった人向けです。
無料枠でもintegration色々試したいですよね!? Incoming WebHooksに貴重なintegration枠を使うのがもったいない!
という貧乏精神ですw
インテグレーションいっぱい.PNG

目次

  1. 準備
  2. PythonでPOSTしてみる

準備

以下のページにアクセスして、個人ごとのtokenを取得します。


https://api.slack.com/web
上記ページの一番下のAuthenticationの項目になります。
認証前.PNG

画像のCreate token をクリックするとユーザーごとのtokenが生成されます。
あとで使うので、メモしておきます。

認証トークン発行済.PNG

サンプルで適当にChannelを作ります。


tokenを発行したチームのSlackから、適当にChannelを作ります。
今回は、sampleというChannelを作ったとします。
既存のChannelにもPOSTすることができるので、新しく作らなくても大丈夫です。

これで準備は完了です!

PythonでPOSTしてみる

以下のページにAPIメソッドの一覧があります。
  https://api.slack.com/methods
今回は、この一覧のchat.postMessageメソッドを使います。

sample.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests

#proxyの設定、あれば
PROXIES = {
  "http": "http://hogehoge:port/",
  "https": "https://fugafuga:port/",
}

class SlackWrapper:
    #slack
    __token = 'your_slack_token' #先ほど取得したtokenをここに書く
    __channel = '#sample' #POSTしたいチャンネル名
    __postSlackUrl = 'https://slack.com/api/chat.postMessage' #ここは固定
    __icon_url = 'iconのURL' #Slackに投稿するアイコンのURLを指定する。
    __username = 'sample' #Slackに投稿するユーザー名
    
    def __init__(self):
        pass

    def post(self, posttext):
        params = {'token': self.__token, 
                  'channel': self.__channel , 
                  'text':posttext,
                  'icon_url': self.__icon_url,
                  'username':self.__username,
                  'unfurl_links': 'false'
                  }
        # SlackにPOSTする
        r = requests.post(self.__postSlackUrl, params=params, proxies=PROXIES)  
        # proxyがないとき
        # r = requests.post(self.__postSlackUrl, params=params)  

if __name__ == '__main__':
    slack = SlackWrapper()
    slack.post('こんにちは! Slack!')
    

これでIncoming WebHooksを使わないで指定のチャンネルにPOSTすることができます!
やったね!

33
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?