目次

    下準備をしよう


    前提条件として、
    ・Pythonはインストール済み
    ・Slackのワークスペース・チャンネルは作成済み
    のものとして話を進めていきます。

    筆者は
    MacBook Pro (M1)
    Python 3,10.2
    を使用しています

    Slackの準備

    今回、メッセージを送るために「Incoming Webhooks」を使用します。

    1.「Incoming Webhooks」をSlackに追加する
    SlackアプリのAPPから検索します。

    Slackに追加をどんどんクリック。

    2.設定する
    メッセージを投稿したいチャンネルを選択します。
    他の人も参加しているワークスペースの場合、自分のDMに設定してテストすることをおすすめします。
    たくさん人がいるチャンネルに誤爆しても責任は取れません。

    「インテグレーションの追加」をクリックすると、URLが発行されます。
    ひとまずSlack側の準備は完了です。



    Pythonの準備

    Pythonにはurllibという標準ライブラリがあって、これを使用してURLを開くことができます。
    しかし!この子を使うとよくわからないコードをたくさん書く必要があります。
    そこで今回は、もっと簡単に実行できる”Requests”というHTTPライブラリを使用します。

    インストールは簡単。
    まずはこちらのコマンドをターミナルで実行します。
    pip install requests
    終わりです。簡単でしょう?



    いざ投稿!

    準備ができましたので、スクリプトを書いていきます!

    #さっきインストールしたライブラリの読み込み
    import requests
    import json

    #WEB_HOOK_URLに、さっき発行したURLを設定
    WEB_HOOK_URL = "https://hooks.slack.com/services/さっきのURL"

    requests.post(WEB_HOOK_URL, data=json.dumps({
    #メッセージ
    "text" : "Pythonから投稿してるぜ",
    }))

    これだけでできちゃうんです!
    すごい!!
    とりあえず投稿してみます。
    ターミナルで
    python ファイル名
    を実行。

    ドン!

    できました!!簡単すぎる!!!

    Incoming Webhookのガイダンスに色々書いてあったので試してみましょう



    requests.post(WEB_HOOK_URL, data=json.dumps({
    #メッセージ
    "text" : "検索しましょう<https://www.google.com/|ggrks>",
    #名前
    "username": "赤さん",
    #アイコン
    "icon_emoji":":baby:"
    }))

    このようにしてみました。

    テキスト内にリンクを作成したいときはURLを<>で囲みます。
    ハイパーリンク付きのテキストを表示したいときは<https://hogehoge.com|例>のように、パイプライン(|)で区切って書きます。

    また、名前とアイコンをカスタマイズすることもできます。
    "icon_emoji":
    でSlack内の絵文字を設定することができます。
    「使いたい絵文字はあるけど、名前がわからないよ〜」
    というそこのあなた!

    このように、絵文字を一回入力してから、マウスカーソルを上に乗せると名前が表示されます。

    カスタマイズしたものを再度投稿してみます。えい!

    うまくいきましたね。


    ちなみに、下の方にスクロールしていくとこんな物がありました。

    ここで設定できるんかーい!
    名前とアイコンに関してはコード書かなくても良さそうです。


    俺たちの冒険はここからだ

    投稿はできるようになりました。
    しかし、これで終わりではありません。
    scheduleモジュールを使用し、投稿を定期実行して、毎月の定期連絡を自動化するのが私の真の目的です。

    こちらはまだ試行錯誤中ですので追記にてご報告させていただきます!


    おわり

    いかがでしたでしょうか?
    思っていたよりも数倍楽にPythonからの投稿を実装することができました。
    エンジニアではなくても簡単にできると思いますので、是非チャレンジしてみてはいかがでしょうか。
    それでは、よきPythonライフを!
    PREV
    2022.03.10
    4週間で全世界向け越境ECサイトを作った話
    NEXT
    2022.03.10
    SEO調査におすすめ!Chrome拡張機能5選