Skip to content

Latest commit

 

History

History
133 lines (105 loc) · 3.75 KB

readme.md

File metadata and controls

133 lines (105 loc) · 3.75 KB

Telegram Gateway API SDK

This library allows you to verify phone numbers of users and send authorization codes through Telegram Gateway.

Contents

Requirements

Technology Version
JDK 21+
Kotlin 1.9+
Coroutines 1.8.0+

Installation

  1. Download by one of two options:
  • 1.1 Clone source code:
git clone https://github.com/p-vorobyev/telegram-gateway-sdk.git

    or

  • 1.2 Download artifact from GitHub Packages:

       Gradle:

       Specify repository in build.gradle.kts with your GitHub login and personal token.

repositories {
    mavenCentral()
    maven {
        url = uri("https://maven.pkg.github.com/p-vorobyev/*")
        credentials {
            username = "GITHUB_LOGIN"
            password = "GITHUB_TOKEN"
        }
    }
}

       Maven:

       Specify github server with your credentials in settings.xml for Apache Maven. See GitHub docs how to generate personal token.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <servers>
        <server>
            <id>github</id>
            <username>GITHUB_LOGIN</username>
            <password>GITHUB_TOKEN</password>
        </server>
    </servers>

</settings>

       Add repository to pom.xml of your project.

<repositories>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/p-vorobyev/*</url>
    </repository>
</repositories>
  1. Add dependency to your project:

       Gradle:

implementation("dev.voroby:telegram-gateway-sdk:1.0.1")

       Maven:

<dependency>
    <groupId>dev.voroby</groupId>
    <artifactId>telegram-gateway-sdk</artifactId>
    <version>1.0.1</version>
</dependency>

Example

Create TelegramGateway instance:

val protocol = Protocol.createHttpProtocol()
val telegramGateway = TelegramGateway.create(
    accessToken = "your_token",
    protocol = protocol
)

Available methods(documentation):

interface TelegramGateway : AutoCloseable {

    suspend fun checkSendAbility(request: CheckSendAbility.Request): Either<Throwable, Response>

    suspend fun checkVerificationStatus(request: CheckVerificationStatus.Request): Either<Throwable, Response>

    suspend fun sendVerificationMessage(request: SendVerificationMessage.Request): Either<Throwable, Response>
}

Let's check the ability to send a verification message to the specified phone number:

telegramGateway.use { tg ->
    val request = CheckSendAbility.Request("phone_number_in_international_format")
    val response: Either<Throwable, Response> = tg.checkSendAbility(request)
    response.onRight { println(it.toString()) }
}

License

MIT License