Contact
Properties
name | type | Description |
---|---|---|
contactList | ContactListItemType [ ] | null | contact list |
followerList | ContactListItemType [ ] | null | follower list |
followingList | ContactListItemType [ ] | null | following list |
Methods
name | type | Parameters Description | response |
---|---|---|---|
sendFriend | function | 1. target_id: (userid | address) 2. content: string 3. didType: BlockChainType | Promise:ServiceResponse |
getContactList | function | PageParams | Promise:ContactListItemType |
getFollowerList | function | PageParams | Promise:ContactListItemType |
getFollowingList | function | PageParams | Promise:ContactListItemType |
followOperation | function | FollowOperationParams | Promise:ServiceResponse |
publishNotificationToFollowers | function | PublishNotificationToFollowersParams | Promise:ServiceResponse |
Prerequisites
init() see: init
register() see: register
login() see: login
event see: event
Init and get Client
To use the functions of the current module, please complete the following steps first.
tip
After successful login, you can get the secret key pair from the returned result
import { useEffect, useState } from 'react';
import { Client } from '@web3mq/client';
export const App = () => {
const [fastestUrl, setFastUrl] = useState<string | null>(null);
useEffect(() => {
Client.init({
connectUrl: '', //
app_key: 'app_key', // temporary authorization key obtained by applying, will be removed in future testnets and mainnet
}).then(data => {
setFastUrl(data);
});
}, [])
if (!fastestUrl) return;
const {
tempPrivateKey,
tempPublicKey,
pubkeyExpiredTimestamp,
mainPrivateKey,
mainPublicKey,
} = loginRes
const keys = {
PrivateKey: tempPrivateKey,
PublicKey: tempPublicKey,
userid: localStorage.getItem('userid')
};
const client = Client.getInstance(keys);
return (
<Child client={client} />
)
}
Methods
getFollowerList
Get your list of follower, and could pass in
pageParams
type parameters to achieve paging.
import { useEffect } from 'react';
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
const handleEvent = (event: { type: any }) => {
if (event.type === 'contact.getFollowerList') {
console.log(client.contact.followerList);
}
};
useEffect(() => {
client.on('contact.getFollowerList', handleEvent);
return () => {
client.off('contact.getFollowerList');
};
}, []);
return (
<>
<button
onClick={() => {client.contact.getFollowerList({ page: 1, size: 100 })}}
>
get follower list
</button>
</>
)
};
getFollowingList
Get your list of following, and could pass in
pageParams
type parameters to achieve paging.
import { useEffect } from 'react';
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
const handleEvent = (event: { type: any }) => {
if (event.type === 'contact.getFollowingList') {
console.log(client.contact.followingList);
}
};
useEffect(() => {
client.on('contact.getFollowingList', handleEvent);
return () => {
client.off('contact.getFollowingList');
};
}, []);
return (
<button
onClick={() => {client.contact.getFollowingList({ page: 1, size: 100 })}}
>
get following list
</button>
)
};
getContactList
Get your list of contact, and could pass in
pageParams
type parameters to achieve paging.
import { useEffect } from 'react';
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
const handleEvent = (event: { type: any }) => {
if (event.type === 'contact.getContactList') {
console.log(client.contact.followingList);
}
};
useEffect(() => {
client.on('contact.getContactList', handleEvent);
return () => {
client.off('contact.getContactList');
};
}, []);
return (
<button
onClick={() => {client.contact.getContactList({ page: 1, size: 100 })}}
>
get contact list
</button>
)
};
sendFriend
Select userid or wallet address to send a friend request.
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
return (
<button
onClick={async () => {
const data = await client.contact.sendFriend(
"target_userid or target_walletAddress",
"Can you follow me?",
'eth'
);
console.log(data);
}}
>
send friend
</button>
);
};
followOperation
Following or unfollowing others.
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
return (
<button
onClick={async () => {
const data = await client.contact.followOperation({
action: 'follow',
address: 'wallet_address',
didType: 'wallet_type',
targetUserid: 'userid',
});
console.log(data);
}}
>
follow user
</button>
);
};
publishNotificationToFollowers
Customize your content and send notifications to your followers.
import { Client } from '@web3mq/client';
interface IProps {
client: Client;
}
export const Child = (props: IProps) => {
const { client } = props;
return (
<button
onClick={async () => {
const data = await client.contact.publishNotificationToFollowers({
title: 'hello world',
content: 'have a good day'
});
console.log(data);
}}
>
publish notification to follower
</button>
);
};