kazu22002の技術覚書

技術屋として日々の内容を記録しているサイト。PHPやcordovaをやっています。

pythonでslack APIを試してみる

slackを使っているが、もっと情報を集めるツールとしてみたい。

メールで送信をしようとしたが、知識不足でドメイン周りでエラーがひたすら出た。(gmailです)

まぁ、内部環境だからまともなドメインなんて取得してないですし。。。

と、そこでslackに投稿して処理の完了メッセージをやりたいな。と。

Slack APIを使ってみる。

とりあえず投稿するところまで。

APIです。

API Methods | Slack

slackを利用していれば、簡単にできると思います。

手順としては、

  • Tokenの取得
  • チャンネルIDの取得
  • ポスト送信プログラム
  • テスト

Tokenの取得

ログインをした状態で以下のページで、参照

Slack Web API | Slack

下のほうでAuthenticationからTeamの「Create token」ボタンからtoken作成

Tokenができたら、あとで使用するので、保存します。

チェンネルIDの取得

f:id:kazu22002:20150420002739p:plain

から

遷移先のURLの「channel_id=」以降を保存。

これがチャンネルID

ポスト送信プログラム

pythonでサンプル作成

#coding: utf-8

import urllib
import urllib2

url = "https://slack.com/api/chat.postMessage"

params = {'token':'',   # トークン
          'channel':'', # チャンネルID
          'text': ''    # 送信するテキスト
}

params['text'] = 'test'
params = urllib.urlencode(params)

req = urllib2.Request(url)
# ヘッダ追加
req.add_header('Content-Type', 'application/x-www-form-urlencoded')
# パラメータ追加
req.add_data(params)

res = urllib2.urlopen(req)

# レスポンス取得
body = res.read()

参考

d.hatena.ne.jp

テスト

f:id:kazu22002:20150420003203p:plain

送信できたっぽいです。。。

これでやりたいことができそうです。

API Methods | Slack

APIを読んでいろいろやりましょう。

slackはいろいろできるっぽいので、いろいろやりたいです。