# Channel Configurations

Channel Configuration
You can see all the providers that DigiMe supports documented in the sidebar, under "Channel Configuration".
Please note that no providers are configured by default. You will need to configure them all in your .env file, or as environment variables. You will need to restart DigiMe whenever you change environment variables.

# Facebook

### Step 1[](https://docs.postiz.com/providers/facebook#step-1)

Create a [new app in Facebook developers<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://developers.facebook.com/apps/creation/), choose the business you want to connect it to.  
Please be advised that for public applications you would need to verify you business.

![Create app](https://github.com/user-attachments/assets/e24f15a7-d9b1-48cb-8952-7a5258923b4c)

### Step 2[](https://docs.postiz.com/providers/facebook#step-2)

Select "Other" and click next

![Other](https://github.com/user-attachments/assets/9c976b82-0b73-4d1d-b3ef-cf98e4cc0c50)

### Step 3[](https://docs.postiz.com/providers/facebook#step-3)

Then select business

![Business](https://github.com/user-attachments/assets/74bde861-5441-46bb-b5b8-c5229e980237)

Add all your details and click Create App

### Step 4[](https://docs.postiz.com/providers/facebook#step-4)

![CleanShot 2024-09-24 at 13 45 54](https://github.com/user-attachments/assets/f0c03825-0f9b-4467-94a4-ab8cf6ed7e1d)

Set final details

### Step 5[](https://docs.postiz.com/providers/facebook#step-5)

![Setup Login with Facebook](https://github.com/user-attachments/assets/08d3c1d1-d498-49d1-adac-aa6248e7c10c)

Set up login for business

### Step 6[](https://docs.postiz.com/providers/facebook#step-6)

Set up a redirect URI back to the application![step 6](https://github.com/user-attachments/assets/8bf1774b-b6fe-4ac6-aea5-97d8c8bbf5da)

The default dev container redirect URI is `http://localhost:4200/integrations/social/facebook`

### Step 7[](https://docs.postiz.com/providers/facebook#step-7)

![step 7](https://github.com/user-attachments/assets/a81aa2a3-de66-4099-906b-b78c641d1a23)

Go to advanced permission and request access for the following scopes: `pages_show_list` `business_management` `pages_manage_posts` `pages_manage_engagement` `pages_read_engagement` `read_insights`

### Step 8[](https://docs.postiz.com/providers/facebook#step-8)

![Keys](https://github.com/user-attachments/assets/ac11f87f-4951-47f8-8344-7fbc9de942e4)

Go to basic permissions copy your App ID and App Secret and paste them in your `.env` file

```
FACEBOOK_APP_ID="app id"
FACEBOOK_APP_SECRET="app secret"
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--15"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>Facebook should now be working!

# Twitter(X)

X is a bit different.  
They created an oAuth2 flow, but it works only with Twitter v2 API.  
But in order to upload pictures to X, you need to use the old Twitter v1 API.  
So we are going to use the normal oAuth1 flow for that (that supports Twitter v2 also 🤷🏻‍).

Head over the [Twitter developers page<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://developer.twitter.com/en/portal/dashboard) and create a new app.  
Click to sign-up for a new free account

[![x-001.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/SF9QePho29RZMUgi-x-001.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/SF9QePho29RZMUgi-x-001.webp)

Click to edit the application settings

[![x-002.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/nMDJgB76JJNaSf44-x-002.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/nMDJgB76JJNaSf44-x-002.webp)

The click to set up an authentication flow

[![x-003.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/W85L9Dxj0PmCEQKs-x-003.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/W85L9Dxj0PmCEQKs-x-003.webp)

In the App Permission set it to `Read and Write` In the Type of App set it to `Web App, Automated App or Bot` In the App Info set the `Callback URI / Redirect URL` to `http://localhost:4200/integrations/social/x` Save it and go to "Keys and Tokens" tab

Click on "Regenerate" inside "Consumer Keys" and copy the `API Key` and `API Key Secret`. Open .env file and add the following:

```
X_API_KEY=""
X_API_SECRET=""
```

# Instagram

### Step 1[](https://docs.postiz.com/providers/instagram#step-1)

Create a [new app in Instagram developers<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://developers.instagram.com/apps/creation/), choose the business you want to connect it to.  
Please be advised that for public applications you would need to verify you business.

![Create app](https://github.com/user-attachments/assets/e24f15a7-d9b1-48cb-8952-7a5258923b4c)

### Step 2[](https://docs.postiz.com/providers/instagram#step-2)

Select "Other" and click next

![Other](https://github.com/user-attachments/assets/9c976b82-0b73-4d1d-b3ef-cf98e4cc0c50)

### Step 3[](https://docs.postiz.com/providers/instagram#step-3)

Then select business

![Business](https://github.com/user-attachments/assets/74bde861-5441-46bb-b5b8-c5229e980237)

Add all your details and click Create App

### Step 4[](https://docs.postiz.com/providers/instagram#step-4)

![CleanShot 2024-09-24 at 13 45 54](https://github.com/user-attachments/assets/f0c03825-0f9b-4467-94a4-ab8cf6ed7e1d)

Set final details

### Step 5[](https://docs.postiz.com/providers/instagram#step-5)

![Setup Login with Instagram](https://github.com/user-attachments/assets/08d3c1d1-d498-49d1-adac-aa6248e7c10c)

Set up login for business

### Step 6[](https://docs.postiz.com/providers/instagram#step-6)

Set up a redirect URI back to the application![Instagram](https://github.com/user-attachments/assets/78496d3f-3b84-4724-afc8-ed217d892c6d)

The default dev container redirect URI is `http://localhost:4200/integrations/social/instagram`

### Step 7[](https://docs.postiz.com/providers/instagram#step-7)

![step 7](https://github.com/user-attachments/assets/a81aa2a3-de66-4099-906b-b78c641d1a23)

Go to advanced permission and request access for the following scopes: `instagram_basic` `pages_show_list` `pages_read_engagement` `business_management` `instagram_content_publish` `instagram_manage_comments` `instagram_manage_insights`

### Step 8[](https://docs.postiz.com/providers/instagram#step-8)

![Keys](https://github.com/user-attachments/assets/ac11f87f-4951-47f8-8344-7fbc9de942e4)

Go to basic permissions copy your App ID and App Secret and paste them in your `.env` file

```
INSTAGRAM_APP_ID="app id"
INSTAGRAM_APP_SECRET="app secret"
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--15"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>Instagram should now be working!

# LinkedIn

Head over to [Linkedin developers<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://www.linkedin.com/developers/apps) and create a new app.

[![linkedin-001.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/pf3WkAOAdS2GJ1Cm-linkedin-001.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/pf3WkAOAdS2GJ1Cm-linkedin-001.webp)

Fill in all the details, once created head over to Products and make sure you add all the required products.

[![linkedin-002.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/FDyDQASlw8TqUdDF-linkedin-002.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/FDyDQASlw8TqUdDF-linkedin-002.webp)

It is important to request the Advertising API permissions and fill up the request form, or you will not have the ability to refresh your tokens.

Make sure your redirect URL is set to `http://localhost:4200/integrations/social/linkedin` for local development. Copy the created `Client ID` and `Client Secret` and add them to your `.env` file.

```
LINKEDIN_CLIENT_ID=""
LINKEDIN_CLIENT_SECRET=""
```

# Reddit

Head over to [Reddit developers<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://www.reddit.com/prefs/apps) and create a new app. In the type of app, select `web app` and in the redirect uri, add `http://localhost:4200/integrations/social/reddit`.

Copy the Reddit client id and client secret and add them to your `.env` file.

[![reddit-001.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/ezj57qBVDS6RxBjO-reddit-001.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/ezj57qBVDS6RxBjO-reddit-001.webp)

```
REDDIT_CLIENT_ID=""
REDDIT_CLIENT_SECRET=""
```

# Mastodon

Mastodon client registration is not done via ther web interface, but by talking to the API directly. In the example below, we use `curl` to register a new client.

Optionally check that you have `jq` installed on your system. You can normally install this with brew, apt-get, yum or chocolatey. If you don't have `jq` installed, you can remove it from the command below.

Run the following curl command in a terminal to get the Mastodon client id and client secret.

```
curl -X POST -sS https://mastodon.social/api/v1/apps -F "client_name=YourAppName" -F "redirect_uris=http://localhost:4200/integrations/social/mastodon" -F "scopes=write:statuses write:media profile" | jq
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk-"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>This will give you output that looks something like this;

```
{  "id": "1234567890",  "redirect_uris": [    "http://localhost:4200/integrations/social/mastodon"  ],  ...  "client_id": "your_client_id",  "client_secret": "your_client_secret"}
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--1"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>Make a note of your `client_id` and `client_secret` and add them to your `.env` file.

```
MASTODON_CLIENT_ID="shown in the output from the above command"MASTODON_CLIENT_SECRET="shown in the output from the above command"
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--2"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>Stop DigiMe if it is running, and then start it using the .env file with the Mastodon details. Click through the new channel setup and you should be asked to login on Mastodon.

# YouTube

### Step 1 Go to the Credentials Page[](https://docs.postiz.com/providers/youtube#step-1-go-to-credentials-page)

Make sure you are logged in to your Google account and visit the [Credentials - APIs &amp; Services<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://console.cloud.google.com/projectselector2/apis/credentials) page. Make sure to read the terms and conditions and "Agree and Continue".

### Step 2 Create Project[](https://docs.postiz.com/providers/youtube#step-2-create-project)

Create a new project by clicking on the "Create Project" button.

### Step 3[](https://docs.postiz.com/providers/youtube#step-3)

Fill in the project name, and details and click "Create".

### Step 4 Create OAuth Credentials[](https://docs.postiz.com/providers/youtube#step-4-create-oauth-credentials)

Create credentials by clicking on the "Create Credentials" button. Select the "OAuth client ID" option.

### Step 5 Configure Consent Screen[](https://docs.postiz.com/providers/youtube#step-5-configure-consent-screen)

Make sure that your consent screen has been configured. Add yourself as a test user of the application.

### Step 6 Fill in OAuth Details[](https://docs.postiz.com/providers/youtube#step-6-fill-in-oauth-details)

Create the OAuth client ID. Select "Web application" as the application type and fill in the details.

After following all of the steps above you should be met with a screen that shows your client ID and client secret. Add these to your providers configuration.

```
YOUTUBE_CLIENT_ID=""
YOUTUBE_CLIENT_SECRET=""
```

# Discord

### Create a Discord Application[](https://docs.postiz.com/providers/discord#create-a-discord-application)

Login to Discord on the web, and then go to the [Discord Developer Portal<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://discord.com/developers/applications) and click on "New Application".

[![discord_create_app.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/uBl6xzTV8QSYzaUN-discord-create-app.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/uBl6xzTV8QSYzaUN-discord-create-app.webp)

### Get and set your **Client ID** and **Client Secret** to a safe place.[](https://docs.postiz.com/providers/discord#get-and-set-your-client-id-and-client-secret-to-a-safe-place)

You can find this in the **OAuth2** section of the Discord Developer Portal.

[![discord_copy_keys.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/hXErRsvWLRGNAcgf-discord-copy-keys.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/hXErRsvWLRGNAcgf-discord-copy-keys.webp)

Set these in your .env file as follows;

```
DISCORD_CLIENT_ID="your_client_id"DISCORD_CLIENT_SECRET="your_client_secret"
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--4"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>### Create a Bot[](https://docs.postiz.com/providers/discord#create-a-bot)

Navigate to the "Bot" section of the Discord Developer Portal. Fill out the bot details however you like, and then click "Reset Token".

With the token that is generated, set it in your .env file as follows;

```
DISCORD_BOT_TOKEN_ID="your_bot_token"
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--6"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>If you do not set this, you will get 404 errors when trying to add the Discord channel in the Postiz web interface.

Stop Postiz if it is running, and then start it using the .env file with the Discord details.

### Add a Redirect URI[](https://docs.postiz.com/providers/discord#add-a-redirect-uri)

The redirect URI is the URL that Discord will redirect to after you have logged in. Assuming you are runnning Postiz on `postiz.example.com`, this would be: `https://postiz.example.com/integrations/social/discord`. Alternatively if you are running on `localhost:4200`, this would be `http://localhost:4200/integrations/social/discord`.

### Add a Discord channel in the Postiz web interface[](https://docs.postiz.com/providers/discord#add-a-discord-channel-in-the-postiz-web-interface)

Go to the Postiz web interface, and click on the "Add Channel" button, and then select "Discord". You should be redirected to Discord to login.

# Dribble

### Register your application[](https://docs.postiz.com/providers/dribbble#register-your-application)

[Register your application on Dribbble<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://dribbble.com/account/applications/new).

- **Name:** `MyPostizInstance`
- **Description:** `My Postiz Instance`
- **Website:** `https://example.com`
- **Redirect URI:** `http://localhost:4200/integrations/social/dribbble`

### Copy your client secret to environment variables[](https://docs.postiz.com/providers/dribbble#copy-your-client-secret-to-environment-variables)

These can be found immediately after registering your application. These are both 64 characters long.

```
DRIBBLE_CLIENT_ID="1234..."DRIBBLE_CLIENT_SECRET="5678..."
```

<div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0" id="bkmrk--2"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div>Restart Postiz with the updated environment variables

### Add a Dribbble channel in the Postiz web interface[](https://docs.postiz.com/providers/dribbble#add-a-dribbble-channel-in-the-postiz-web-interface)

Go to the Postiz web interface, and click on the "Add Channel" button. Select "Dribbble" from the list of available channels. You should be redirected to Dribbble to authorize the application.

# Tiktok

## title: TikTok description: How to add TikTok to your system[](https://docs.postiz.com/providers/tiktok#title-tiktokdescription-how-to-add-tiktok-to-your-system)

<div class="nextra-callout nx-overflow-x-auto nx-mt-6 nx-flex nx-rounded-lg nx-border nx-py-2 ltr:nx-pr-4 rtl:nx-pl-4 contrast-more:nx-border-current contrast-more:dark:nx-border-current nx-border-orange-100 nx-bg-orange-50 nx-text-orange-800 dark:nx-border-orange-400/30 dark:nx-bg-orange-400/20 dark:nx-text-orange-300" id="bkmrk-%F0%9F%92%A1"><div class="nx-select-none nx-text-xl ltr:nx-pl-3 ltr:nx-pr-2 rtl:nx-pr-3 rtl:nx-pl-2">💡</div><div class="nx-w-full nx-min-w-0 nx-leading-7">  
</div></div>This integration requires that you have a TikTok developer account. It also requires that you have a public website, with https, and can upload files to that site to verify ownership.

TikTok will also not allow http:// for your app redirect URI, so you will need to be accessing Postiz from HTTPS.

### Create you app[](https://docs.postiz.com/providers/tiktok#create-you-app)

Go here: [https://developers.tiktok.com/apps<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](https://developers.tiktok.com/apps)

[![tiktok_create_app.webp](https://help.digime.ca/uploads/images/gallery/2024-10/scaled-1680-/E0PmVDQFqyemeQHu-tiktok-create-app.webp)](https://help.digime.ca/uploads/images/gallery/2024-10/E0PmVDQFqyemeQHu-tiktok-create-app.webp)

<div class="nextra-steps nx-ml-4 nx-mb-12 nx-border-l nx-border-gray-200 nx-pl-6 dark:nx-border-neutral-800 [counter-reset:step]" id="bkmrk-app-name%3A%C2%A0mypostiz-r">- **App Name:** `MyPostiz`
- **Redirect URI:** `http://localhost:4200/integrations/social/tiktok`

</div>### Set a TOS and Privacy Policy[](https://docs.postiz.com/providers/tiktok#set-a-tos-and-privacy-policy)

This needs to be on a public domain that you have access to, that is hosted on HTTPS.

Tick "Web" for your platforms.

### Add apps[](https://docs.postiz.com/providers/tiktok#add-apps)

Add the "Login Kit" and "Content Posting API" to your app.

For "Login Kit", set the redirect URI to [http://localhost:4200/integrations/social/tiktok<span class="nx-sr-only nx-select-none">(opens in a new tab)</span>](http://localhost:4200/integrations/social/tiktok)

For Content posting API, enable "Direct Post".

### Add scopes[](https://docs.postiz.com/providers/tiktok#add-scopes)

<div class="nextra-steps nx-ml-4 nx-mb-12 nx-border-l nx-border-gray-200 nx-pl-6 dark:nx-border-neutral-800 [counter-reset:step]" id="bkmrk-user.info.basic-vide">- user.info.basic
- video.create
- video.upload

</div>### Copy your client secret to environment variables[](https://docs.postiz.com/providers/tiktok#copy-your-client-secret-to-environment-variables)

These can be found immediately after registering your application. The client ID is 16 characters long and the secret is 32 characters long.

```
TIKTOK_CLIENT_ID=1234567890123456TIKTOK_CLIENT_SECRET=12345678901234567890123456789012
```

<div class="nextra-steps nx-ml-4 nx-mb-12 nx-border-l nx-border-gray-200 nx-pl-6 dark:nx-border-neutral-800 [counter-reset:step]" id="bkmrk--7"><div class="nextra-code-block nx-relative nx-mt-6 first:nx-mt-0"><div class="nx-opacity-0 nx-transition [div:hover>&]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0" style="box-sizing: border-box; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; position: absolute; right: 0px; top: 0px; margin: 11px; display: flex; gap: 0.25rem; opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);"><button class="nextra-button nx-transition-all active:nx-opacity-50 nx-bg-primary-700/5 nx-border nx-border-black/5 nx-text-gray-600 hover:nx-text-gray-900 nx-rounded-md nx-p-1.5 dark:nx-bg-primary-300/10 dark:nx-border-white/10 dark:nx-text-gray-400 dark:hover:nx-text-gray-50" tabindex="0" title="Copy code"><svg class="nextra-copy-icon nx-pointer-events-none nx-h-4 nx-w-4" fill="none" height="24" stroke="currentColor" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="13" rx="2" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="13" x="9" y="9"></rect><path d="M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></button></div></div></div>Restart Postiz with the updated environment variables

### Add a TikTok channel in the Postiz web interface[](https://docs.postiz.com/providers/tiktok#add-a-tiktok-channel-in-the-postiz-web-interface)

Go to the Postiz web interface, and click on the "Add Channel" button. Select "TikTok" from the list of available channels. You should be redirected to TikTok to authorize the application.