Node.js SDK
Last updated
// preLogin to get a message to sign
let auth = new SDNAuth(nodeUrl)
let loginMessage = await auth.didPreLogin(address)
let web3 = new Web3()
// sign with wallet account key
let walletSignature = web3.eth.accounts.sign(loginMessage["message"], key)
// sign with developer key (add '0x' prefix if necessary)
let developerKeySignature = web3.eth.accounts.sign(loginMessage["message"], developerKey)
// didLogin to get access token
let loginResp = await auth.didLoginWithAppToken(address,
loginMessage["did"], loginMessage["message"], walletSignature["signature"], developerKeySignature["signature"],
loginMessage["random_server"], loginMessage["updated"])
let accessToken = loginResp["access_token"]
// create SDNClient with a storage file
let storage = new SimpleFsStorageProvider("/path/to/bot/storage/file");
let client = new SDNClient(nodeUrl, accessToken, storage);
// register message listener
client.on("room.message", async (roomId: string, event: any) => {
LogService.info("index", roomId, event);
});
// start syncing
await client.start();await client.createRoom({ name: 'My Room' });await client.inviteUser('user_id', 'room_id');await client.sendText('room_id', 'Hello, world!');