Skip to content

Twitter API client for KotlIn Multiplatform

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header.txt
Notifications You must be signed in to change notification settings

yshrsmz/twitter4kt

Repository files navigation

twitter4kt

Twitter API client for Kotlin Multiplatform Project.

Currently, only available for jvm.

Setup

For build.gradle.kts

LATEST_VERSION: 0.2.3 Twitter4kt is distributed via Maven Central

plugins {
    id("org.jetbrains.kotlin.multiplatform") version "1.4.10"
}

repositories {
    mavenCentral()
    jcenter()
    maven(url = "https://kotlin.bintray.com/kotlinx/") // needed for kotlinx-datetime
}

kotlin {
    jvm()

    sourceSets {
        val commonMain by getting {
            implementation("com.codingfeline.twitter4kt:core-api:$LATEST_VERSION")
            implementation("com.codingfeline.twitter4kt:v1-api:$LATEST_VERSION")

            // if you need logging for HTTP calls
            implementatin("io.ktor:ktor-client-logging:$KTOR_VERSION")
        }
    }
}

Usage

val twitter = Twitter {
    consumerKeys = ConsumerKeys(
        key = "",
        secret = ""
    )
    httpClientConfig = {
        install(Logging) {
            logger = Logger.SIMPLE
            level = LogLevel.ALL
        }
    }
}

val authFlow = twitter.launchOAuthFlow()

launch(Dispatchers.io) {
    val requestToken: RequestToken = authFlow.fetchRequestToken()

    val url = requestToken.authorizationUrl
    val pinCode = ""

    val accessToken = authFlow.fetchAccessToken(requestToken, pinCode)

    authFlow.destroy()

    val client = twitter.startSession(accessToken)

    val result: ApiResult<Tweet> = client.statuses.update(status = "Hello from twitter4kt!")
}

Development

Create ./secrets.properties

twitter_consumer_key=
twitter_consumer_secret=
twitter_access_token=
twitter_access_token_secret=
twitter_user_id=
twitter_screen_name=

We use these values for testing

About

Twitter API client for KotlIn Multiplatform

Topics

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header.txt

Stars

Watchers

Forks

Packages

No packages published