npm package: @ramper-v2/telegram-sdk
Description: Ramper Social Login
Author: Ramper
Latest version: 1.0.10

# Ramper Telegram

The ways of adding RamperTelegram to a project
```ts
import RamperTelegram from 'ramper-telegram';
const sdkConfig = {
    // gameId provided by Ramper, request before using the SDK (optional)
    gameId: 'sdk_sample',
    partner: 'coin98',
    // partner app id provided by Ramper, request before using the SDK (required)
    appId: 'missing_app_id',
    // source provided by Ramper, request before using the SDK (optional)
    source: 'source_sample',
    // currently we support 2 blockchains: 'orange' and 'tomo', if not provided, default is 'tomo' (optional)
    chain: 'orange' | 'tomo',
    // callback functions for handling sign in success, sign in fail and sign message
    onSignInSucess: (uProfile) => {
        // handle user profile after sign in success
        console.log('sign-in-success', uProfile);
    },
    onSignMessage: (msg) => {
        // handle message after sign in success
        console.log('sign-message-success', msg);
    },
    onSignInFail: (ev) => {
        // handle sign in fail
        console.error('sign-in-fail', ev);
    }
}

// Initialize RamperTelegram
RamperTelegram.initializeAsync(sdkConfig)
    .then(() => {
        console.log('init ramper success')
    })
    .catch((reason => {
        console.error('');
    }))
```

## **FUNCTIONS**

### getSDKVersion
#### Description
The string representation of this SDK version.

> **getSDKVersion**(): `string`

#### Returns
`string` Returns string The SDK version.
#### Example
```ts
var sdkVersion = RamperTelegram.getSDKVersion(); // '1.0'
```

### hideIframe
#### Description
Hide iframe

> **hideIframe**(): `void`

## Returns
`void`
#### Example
```ts
RamperTelegram.hideIframe();
 ```
--------------------------------------------
### initializeAsync
#### Description
Initializes the SDK library. This should be called before any other SDK functions.
Login request be fired on this.

> **initializeAsync**(`config`): `Promise`\<`any`\>
>
#### Parameters
• **config**: Object
• Properties
    ```ts
        gameId: string;
        partner: string;
        onSignInSucess: (userProfile: UserProfile) => void;
        onSignMessage: (data: Object) => void;
        onSignInFail: (data: Object) => void;
    ```
#### Returns
`Promise`\<`void`\>
#### Example
```ts
RamperTelegram.initializeAsync({
    gameId: 'sdk_sample',
    partner: 'coin98',
    appId: 'missing_app_id',
    onSignInFail: (ev) => {
        console.error('sign in fail');
    },
    onSignInSucess: (uProfile) => {
        console.log('sign-in-success', uProfile);
    },
    onSignMessage: (msg) => {
        console.log('sign-message-success', msg);
    }
})
```
--------------------------------------------
### showIframe
#### Description
Open iframe with target url

> **showIframe**(`url`, `afterLoadUrlCallback`): `void`
>
#### Parameters
• **url**: `string`
set a callback to be fired on web loaded
• **afterLoadUrlCallback**: `any`
#### Returns
`void`
#### Example
```ts
RamperTelegram.showIframe(
    'example.com',
    ()=>{
        console.log('load url success')
    }
)
```
--------------------------------------------
### signMessage
#### Description
Sign a string data.

> **signMessage**(`msg`): `void`
>
#### Parameters
• **msg**: `string`
#### Returns
`void`
#### Example
```ts
RamperTelegram.signMessage('Hello World');
```
--------------------------------------------
### signOut
#### Description
Sign out the user.

> **signOut**(`callback`): `void`

#### Parameters
Set a callback to be fired when a logout is triggered.
• **callback**: `Function`

```ts
RamperTelegram.signOut(function() {
  console.log('logout event was triggered!');
})
```

#### Returns
`void`


## Other platforms support
NuxtJs Example
```ts
<script>
  export default {
    name: 'IndexPage',
    data() {
      return {
        RamperInstant: null, // Placeholder for SDK
        isSDKLoaded: false,  // Flag to track if SDK is loaded
        address : '',
        UID: '',
        email: '',
        profileName: '',
        tgUserId: '',
        loading: false,
        signMessage: 'Welcome to Zamper Telegram SDK',
        signature: '',
        verifyAddress: '',
      };
    },
    mounted() {
      if (process.client) {
        // Ensure the SDK is loaded on client-side only
        console.log("Client detected, loading SDK...");
        import('@ramper-v2/telegram-sdk')
          .then(module => {

            this.RamperInstant = module; // Assign the SDK
            this.isSDKLoaded = true; // Mark SDK as loaded
            console.log("SDK loaded successfully", module);
          })
          .catch(error => {
            console.error('Failed to load SDK:', error);
          });
      }
    },
    methods: {
      initializeSDK() {
        if (this.RamperInstant) {
          this.loading = true
          const sdkConfig = {
            partner: '',
            gameId: '',
            appId: "",
            source: "",
            onSignInSucess: (uProfile) => {
              console.debug("🚀 ~ initializeSDK ~ uProfile:", uProfile);
              const {UID, email, profileName, tgUser, wallets} = uProfile.data;
              this.UID = UID.substring(0, 10);
              this.email = email;
              this.profileName = profileName;
              this.address = wallets.tomo.publicKey;
              this.tgUserId = tgUser.userId;
              this.loading = false
            },
            onSignMessage: (data) => {
              this.signature = data;
              this.loading = false
            },
            onSignInFail: (ev) => {
              this.loading = false
            },
          };
          this.RamperInstant.initializeAsync(
            sdkConfig,
            'preprod'
          )
        } else {
          console.log('SDK not loaded yet');
        }
      },
      onSignMessageButton() {
        if (this.RamperInstant) {
          const signature = this.RamperInstant.signMessage(this.signMessage, '');
        }
      }
    }
  }
</script>
```