@ramper-v2/telegram-sdk
v1.0.8
Published
Ramper Social Login
Downloads
394
Readme
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>