@thxnetwork/sdk
v1.4.0
Published
An SDK for interacting with REST API and authorization services.
Downloads
79
Readme
THX Network JS SDK
This SDK contains API wrappers and an OIDC OAuth manager to simplify access to THX API resources.
Prerequisites
- Sign up for an account
- Create an API key (Account -> Developer -> API)
- Store your API key in a secure location
SDK Contents
1. THXWidget
Meant for loading the HTML widget in a website using JavaScript.
import { THXWidget, THXWidgetOptions } from '@thxnetwork/sdk';
const options: THXWidgetOptions = {
campaignId: '6571c9c6b7d775decb45a8f0',
containerSelector: '#your-html-container', // Optional
identity: '36d33a59-5398-463a-ac98-0f7d9b201648', // Optional
};
THXWidget.create(options);
1.1 ContainerSelector
Providing a containerSelector
is optional and will inject the application in a given HTML element. Make sure to provide CSS styles for proper dimensions within your page.
<div id="your-html-container" style="height: 750px;"></div>
No messagbox, launcher and notification elements will be injected if a container selector is specified!
1.2 Identity
Providing an identity is optional and alternatively you can set an identity at a later moment, for example after successful authentication with your app.
window.THXWidget.setIdentity('36d33a59-5398-463a-ac98-0f7d9b201648');
2. THXAPIClient
Meant for JavaScript backend applications.
import { THXAPIClient, THXAPIClientOptions } from '@thxnetwork/sdk';
const options: THXAPIClientOptions = {
apiKey: 'WtMTSdvSuLaCL7YVYgn2OBT9Bp/WV6xxcosLiqj9CWo=',
};
const thx = new THXAPIClient(options);
2.1 Identities
Identities are used to connect THX accounts to users in your database.
const identity = await thx.identity.create();
// 36d33a59-5398-463a-ac98-0f7d9b201648
2.2 Events
Events can be used to add requirements for Daily, Invite and Custom Quests.
thx.events.create({ name: 'level_up', identity: '36d33a59-5398-463a-ac98-0f7d9b201648' });
2.3 Quests
Quests can be managed programatically. Specify content
and contentMetadata
according to the requirements in order to generate proper card previews.
Twitter Post Previews
Use this content
and contentMetadata
for these interaction
variants: QuestRequirement.TwitterRetweet
.
const interaction = QuestRequirement.TwitteRetweet;
const content = '46927555';
const contentMetadata = {
url: 'https://twitter.com/twitter/status/1603121182101970945',
username: 'johndoe',
name: 'John Doe',
text: '✨ Loyalty Networks are here✨ #fintech meets #loyalty',
minAmountFollowers: 123,
};
Twitter User Previews
Use this content
and contentMetadata
for these interaction
variants: QuestRequirement.TwitterFollow
.
const interaction = QuestRequirement.TwitterFollow;
const content = '13241234';
const contentMetadata = {
id: 46927555,
name: 'John doe',
profileImgUrl: 'https://picsum.com/avatar.jpg',
username: 'johndoe',
minAmountFollowers: 123,
};
Twitter Message Preview
Use this content
and contentMetadata
for these interaction
variants: QuestRequirement.TwitterMessage
,
const interaction = QuestRequirement.TwitterMessage;
const content = '✨ Loyalty Networks are here✨ #fintech meets #loyalty';
const contentMetadata = {
minFollowersCount: 123,
};
Create Twitter Quest
thx.campaigns.quests.create({
variant: QuestVariant.Twitter,
title: 'Farm along!',
description: 'Get these pointzz...',
amount: 123,
isPublished: true,
interaction,
content,
contentMetadata,
});