LoginSignup
1
4

More than 5 years have passed since last update.

KotlinでSlackにメッセージ送る方法

Last updated at Posted at 2017-07-01

SlackでWebhook URLを発行する

ここから( https://slack.com/apps/A0F7XDUAZ-incoming-webhooks )Webhook URLを発行します。

スクリーンショット 2017-07-01 19.50.06.png

発行されるとWebhook URLってところに
https://hooks.slack.com/services/xxxxxx/xxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx
こんな感じのURLが貰える

AndroidManifestでインターネットの接続を許可する

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>を追記します。

app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <uses-permission android:name="android.permission.INTERNET"/>

    <application>
      ...
    </application>
</manifest>

GradleにFuelを追加

KotlinのFuelというライブラリーを使用します。
dependenciesに追加

app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 25
    ...
}

dependencies {
    ...
    compile 'com.github.kittinunf.fuel:fuel:1.8.0'
}

Slackにメッセージを送る

実際にkotlinでリクエストを送る処理を書いていきます。

app/src/main/java/xxxx/xxxx/xxxx/MainActivity.kt
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.github.kittinunf.fuel.Fuel


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        sendMessage()
    }

    fun sendMessage() {
        val webhook: String = "https://hooks.slack.com/services/xxxxxx/xxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx"
        val body: String = "{ \"text\" : \"test message\" }"
        Fuel.post(webhook).body(body).responseString { _, response, result ->
            result.fold({ _ ->
                Log.d("res", response.toString())
            }, { err ->
                Log.e("err", err.toString())
            })
        }
    }
}

とりあえずMainActivityonCreateから呼ばれるようにしたのでアプリを立ち上がる度にSlackへメッセージが飛びます。

実行!

スクリーンショット 2017-07-01 20.52.36.png

おわり

シンプル!簡単!

1
4
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
1
4