twitter4kt v1 api model classes

Model classes for twitter4kt v1 api

License

License

GroupId

GroupId

com.codingfeline.twitter4kt
ArtifactId

ArtifactId

v1-model-jvm
Last Version

Last Version

0.2.3
Release Date

Release Date

Type

Type

module
Description

Description

twitter4kt v1 api model classes
Model classes for twitter4kt v1 api
Project URL

Project URL

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

Source Code Management

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

Download v1-model-jvm

Dependencies

compile (1)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.4.21

runtime (1)

Group / Artifact Type Version
org.jetbrains.kotlinx : kotlinx-serialization-json-jvm jar 1.0.1

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