@ramper-v2/telegram-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.10 • Public • Published

Ramper Telegram

The ways of adding RamperTelegram to a project

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

var sdkVersion = RamperTelegram.getSDKVersion(); // '1.0'

hideIframe

Description

Hide iframe

hideIframe(): void

Returns

void

Example

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

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

RamperTelegram.showIframe(
    'example.com',
    ()=>{
        console.log('load url success')
    }
)

signMessage

Description

Sign a string data.

signMessage(msg): void

Parameters

msg: string

Returns

void

Example

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

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

Returns

void

Other platforms support

NuxtJs Example

<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>

Readme

Keywords

none

Package Sidebar

Install

npm i @ramper-v2/telegram-sdk

Weekly Downloads

100

Version

1.0.10

License

MIT

Unpacked Size

56.4 kB

Total Files

13

Last publish

Collaborators

  • ramper