dissonity
Version:
Extension of the Discord Embedded App SDK that allows you to create activities alongside the Dissonity v1 Unity package
83 lines (59 loc) • 2.5 kB
Markdown
> ⚠️ This NPM package is only required with Dissonity v1. You should update to [Dissonity v2](https://dissonity.dev/guides/v2/migration-v2) at your earliest convenience. ⚠️
<div align="center">
<br />
<p>
<a><img src="https://i.imgur.com/5elvldR.png" width="500"/></a>
</p>
<br />
</div>
# About
Dissonity allows you to easily create Discord activities with Unity. In version 1, the npm and Unity packages share data to provide functionality.
It's designed for a structure similar to the [nested-messages](https://github.com/discord/embedded-app-sdk/tree/main/examples/nested-messages) example from Discord. You may want to familiarize with that project structure first.
# Installation
```
npm install dissonity
yarn add dissonity
pnpm add dissonity
```
# Configuration
When running the activity, your game build will be inside a nested iframe that we will call "child".
The child iframe must have the id "dissonity-child", like:
```html
<iframe id="dissonity-child" src=".proxy/nested/index.html"></iframe>
```
Instead of manually creating an SDK instance, call `setupSdk` inside the parent index.js with your options:
```js
import { setupSdk } from "dissonity";
window.addEventListener("DOMContentLoaded", () => {
setupSdk({
clientId: /*your-app-id*/,
scope: ["rpc.voice.read", "guilds.members.read"],
tokenRoute: "/api/token"
});
});
```
Where `tokenRoute` is the route where your server is handling authorization codes and sending back an access token in a POST request:
### Request
```js
{ code: string }
```
### Expected response
```js
{ access_token: string }
```
### Example code
```js
app.post("/api/token", async (req, res) => {
const code = req.body.code;
(...)
res.send({ access_token });
});
```
That's all the configuration you need inside Node.js! Now, in your Unity project install the [Dissonity Unity package](https://github.com/Furnyr/Dissonity/tree/v1/unity#readme).
> As a note, there's an already configured Node.js project in the GitHub repository.
# Links
- [GitHub](https://github.com/Furnyr/Dissonity/tree/v1)
- [NPM Package Source](https://github.com/Furnyr/Dissonity/tree/v1/npm)
- [Unity Package](https://github.com/Furnyr/Dissonity/tree/v1/unity#readme)
- [Unity Package Documentation](https://github.com/Furnyr/Dissonity/blob/v1/unity/Documentation~/Dissonity.md)
- [Examples](https://github.com/Furnyr/Dissonity/tree/v1/examples)