twitter4kt core api


License

License

GroupId

GroupId

com.codingfeline.twitter4kt
ArtifactId

ArtifactId

core-api-jvm
Last Version

Last Version

0.2.3
Release Date

Release Date

Type

Type

module
Description

Description

twitter4kt core api
twitter4kt core api
Project URL

Project URL

https://github.com/yshrsmz/twitter4kt/
Source Code Management

Source Code Management

https://github.com/yshrsmz/twitter4kt/

Download core-api-jvm

Dependencies

compile (2)

Group / Artifact Type Version
com.codingfeline.twitter4kt : core-model-jvm jar 0.2.3
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.4.21

runtime (7)

Group / Artifact Type Version
io.ktor : ktor-client-okhttp jar 1.4.3
org.jetbrains.kotlinx : kotlinx-serialization-json-jvm jar 1.0.1
org.jetbrains.kotlinx : kotlinx-coroutines-core-jvm jar 1.4.2
org.jetbrains.kotlinx : kotlinx-datetime-jvm jar 0.1.1
io.ktor : ktor-client-core-jvm jar 1.4.3
io.ktor : ktor-client-json-jvm jar 1.4.3
io.ktor : ktor-client-serialization-jvm jar 1.4.3

Project Modules

There are no modules declared in this project.

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

Versions

Version
0.2.3