Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,25 @@
{
"Twitter": "Twitter",
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "Text",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Social Media Plattform mit über 500 Millionen Nutzern",
"Api Key": "Api-Schlüssel",
"Api Key Secret": "Api Schlüssel Geheimnis",
"Access Token": "Zugangs-Token",
"Access Token Secret": "Zugangs-Token Geheimnis",
"The api key": "Die Api Taste",
"The api key secret": "Das Api-Schlüssel Geheimnis",
"The access token": "Das Zugriffstoken",
"The access token secret": "Das Access Token Secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nWenn Sie die Anmeldedaten unten nicht haben, folgen Sie bitte diesen Schritten, um die erforderlichen Anmeldedaten zu erhalten:\n\n. Gehe zu [https://developer.twitter.com/en/portal/projects-and-apps](https://developer. witter.com/de/portal/projects-and-apps) und klicken Sie auf Ihre App-Einstellungen.\n\n2. Unter der Registerkarte **Einstellungen** klicken Sie unter **Benutzerauthentifizierungseinstellungen** auf \"Einrichten\".\n\n3. **Dieser Schritt muss vor dem Generieren der Schlüssel abgeschlossen sein**, überprüfe **Lesen und schreiben** für \"App-Berechtigungen\" und **Native App** für \"App-Typ\", Füllen Sie Ihre Website-URL aus und lassen Sie die **Callback URI / Redirect URL** **(your_website_url)/redirect** sein.\n\n4. Gehen Sie zurück zu Ihren App-Einstellungen und klicken Sie auf den Tab **Keys und Tokens**\n\n5. Neben dem **API-Schlüssel und Geheimnis**, Klicken Sie auf \"Regenerieren\" und kopieren Sie die folgenden Werte in die Eingaben unten:\n\n **Api Schlüssel**\n\n **Api Schlüsselgeheimnis**\n\n6. Neben dem **Zugangs-Token und Geheimnis**, klicken Sie auf \"Regenerieren\" und kopieren Sie die folgenden Werte in die Eingaben unten:\n\n **Access Token** \n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Tweet erstellen",
"Create Reply": "Antwort erstellen",
"Create a tweet": "Tweet erstellen",
"Reply to a tweet.": "Auf einen Tweet antworten.",
"Text": "Text",
"Media (1)": "Medien (1)",
"Media (2)": "Medien (2)",
"Media (3)": "Medien (3)",
"Tweet ID": "Tweet-ID",
"The text of the tweet": "Der Text des Tweets",
"An image, video or GIF url or base64 to attach to the tweet": "Eine Bild-, Video-oder GIF-URL oder Base64, die an den Tweet angehängt werden soll",
"The ID of the tweet to reply too.": "Die ID des zu beantwortenden Tweets."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Plataforma de redes sociales con más de 500 millones de usuarios",
"Api Key": "Clave Api",
"Api Key Secret": "Clave Api secreta",
"Access Token": "Token de acceso",
"Access Token Secret": "Acceso al secreto del token",
"The api key": "La tecla api",
"The api key secret": "El secreto de la clave api",
"The access token": "El token de acceso",
"The access token secret": "El secreto del token de acceso",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Crear Tweet",
"Create Reply": "Crear respuesta",
"Create a tweet": "Crear un tweet",
"Reply to a tweet.": "Responder a un tweet.",
"Text": "Texto",
"Media (1)": "Medios (1)",
"Media (2)": "Medios (2)",
"Media (3)": "Medios (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "El texto del tweet",
"An image, video or GIF url or base64 to attach to the tweet": "Una imagen, video o url GIF o base64 para adjuntar al tweet",
"The ID of the tweet to reply too.": "El ID del tweet para responder también."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Plateforme de médias sociaux avec plus de 500 millions d'utilisateurs",
"Api Key": "Clé Api",
"Api Key Secret": "Secret de la clé API",
"Access Token": "Jeton d'accès",
"Access Token Secret": "Secret du jeton d'accès",
"The api key": "La clé api",
"The api key secret": "Le secret de la clé api",
"The access token": "Le jeton d'accès",
"The access token secret": "Le secret du jeton d'accès",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Créer un Tweet",
"Create Reply": "Créer une réponse",
"Create a tweet": "Créer un tweet",
"Reply to a tweet.": "Répondre à un tweet.",
"Text": "Texte du texte",
"Media (1)": "Média (1)",
"Media (2)": "Média (2)",
"Media (3)": "Média (3)",
"Tweet ID": "ID du Tweet",
"The text of the tweet": "Le texte du tweet",
"An image, video or GIF url or base64 to attach to the tweet": "Une image, une vidéo ou une URL GIF ou base64 à attacher au tweet",
"The ID of the tweet to reply too.": "L'ID du tweet à répondre aussi."
}

View File

@@ -0,0 +1,25 @@
{
"Twitter": "Twitter",
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "Text",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,25 @@
{
"Twitter": "Twitter",
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "Text",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "5億人以上のユーザーを持つソーシャルメディアプラットフォーム。",
"Api Key": "API キー",
"Api Key Secret": "Api キーシークレット",
"Access Token": "アクセストークン",
"Access Token Secret": "アクセストークンシークレット",
"The api key": "APIキー",
"The api key secret": "API キーの秘密",
"The access token": "アクセストークン",
"The access token secret": "アクセストークンの秘密",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "ツイートを作成",
"Create Reply": "返信を作成",
"Create a tweet": "ツイートを作成",
"Reply to a tweet.": "ツイートに返信する",
"Text": "テキスト",
"Media (1)": "メディア (1)",
"Media (2)": "メディア (2)",
"Media (3)": "メディア (3)",
"Tweet ID": "ツイートID",
"The text of the tweet": "ツイートのテキスト",
"An image, video or GIF url or base64 to attach to the tweet": "ツイートに添付する画像、ビデオ、または GIF URL または base64",
"The ID of the tweet to reply too.": "あまりにも返信するツイートのID。"
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Sociale media platform met meer dan 500 miljoen gebruikers",
"Api Key": "API sleutel",
"Api Key Secret": "Api-sleutel geheim",
"Access Token": "Toegangs-token",
"Access Token Secret": "Toegang Token Geheim",
"The api key": "De API sleutel",
"The api key secret": "De API key secret",
"The access token": "De toegangstoken",
"The access token secret": "Het toegangstoken geheim",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nAls u niet onderstaande inloggegevens hebt, volg dan deze stappen om de vereiste inloggegevens te verkrijgen:\n\n. Ga naar [https://developer.twitter.com/en/portal/projects-and-apps](https://developer. witter.com/en/portal/projects-and-apps) en klik op je app-instellingen.\n\n2. Onder het **Instellingen** tabblad dan onder **Gebruikersauthenticatie** sectie, klik op \"Stel op\".\n\n3. **Deze stap moet worden voltooid voordat de sleutels worden gegenereerd**, controleer **Lees en schrijven** voor \"App rechten\" en **Inheemse App** voor \"Type App\", vul je website url in en laat de **Callback URI / Redirect URL** **(your_website_url)/redirect** zijn.\n\n4. Ga terug naar de instellingen pagina van je app en klik op het tabblad **sleutels en tokens**.\n\n5. Naast **API key en geheim**, klik op \"Hergenereren\" en kopieer de volgende waarden naar de onderstaande invoergegevens:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Naast **Toegangstoken en geheim**, klik op \"Hergenereren\" en kopieer de volgende waarden naar de onderstaande invoer:\n\n **Access Token** \n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Tweet aanmaken",
"Create Reply": "Maak een antwoord",
"Create a tweet": "Een tweet maken",
"Reply to a tweet.": "Antwoord op tweet.",
"Text": "Tekstveld",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "De tekst van de tweet",
"An image, video or GIF url or base64 to attach to the tweet": "Een afbeelding, video of GIF url of base64 om aan de tweet toe te voegen",
"The ID of the tweet to reply too.": "De ID van de tweet om te beantwoorden."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Plataforma de mídia social com mais de 500 milhões de usuários",
"Api Key": "Chave de API",
"Api Key Secret": "Segredo da Chave Api",
"Access Token": "Token de acesso",
"Access Token Secret": "Token secreto de acesso",
"The api key": "A chave da api",
"The api key secret": "O segredo da chave API",
"The access token": "O token de acesso",
"The access token secret": "O segredo do token de acesso",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Criar Tweet",
"Create Reply": "Criar resposta",
"Create a tweet": "Criar um tweet",
"Reply to a tweet.": "Responda a um tweet.",
"Text": "texto",
"Media (1)": "Mídia (1)",
"Media (2)": "Mídia (2)",
"Media (3)": "Mídia (3)",
"Tweet ID": "ID do Tweet",
"The text of the tweet": "O texto do tweet",
"An image, video or GIF url or base64 to attach to the tweet": "Uma imagem, vídeo ou URL de GIF ou base64 para anexar ao tweet",
"The ID of the tweet to reply too.": "O ID do tweet para responder também."
}

View File

@@ -0,0 +1,25 @@
{
"Twitter": "Твиттер",
"Social media platform with over 500 million user": "Платформа социальных сетей с более чем 500 миллионами пользователей",
"Api Key": "Api Ключ",
"Api Key Secret": "Секретный ключ Api",
"Access Token": "Маркер доступа",
"Access Token Secret": "Секрет Маркера Доступа",
"The api key": "Ключ api",
"The api key secret": "Секретный ключ api",
"The access token": "Токен доступа",
"The access token secret": "Секретный ключ доступа",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nЕсли у вас нет данных ниже, выполните следующие действия, чтобы получить необходимые учетные данные:\n\n. Перейдите к [https://developer.twitter.com/en/portal/projects-and-apps](https://developer. witter.com/ru/portal/projects-and-apps) и нажмите на настройки вашего приложения.\n\n2. В закладке **Настройки** затем в разделе **Настройки аутентификации пользователя** нажмите \"Настроить\".\n\n3. **Этот шаг должен быть завершен перед созданием ключей**, проверьте **Чтение и запись** на \"Права приложения\" и **Нативное приложение** для \"Типа приложения\", введите адрес вашего сайта и пусть **Callback URI / Redirect URL** будет **(ваш_сайт_url)/redirect** .\n\n4. Вернитесь на страницу настроек приложения и нажмите на вкладку **Ключи и токен**. Оformat@@6 5. Рядом с **API ключом и секретом**, нажмите «Регенерировать» и скопируйте следующие значения в данные ниже:\n\n **Api Key**\n\n **Api Key Secret**\n\n\n\n. Рядом с **Access token и секрет**, нажмите «Перегенерировать» и скопируйте следующие значения в данные ниже:\n\n **Маркер доступа** \n\n **Маркер доступа**\n\n\n",
"Create Tweet": "Создать твит",
"Create Reply": "Создать ответ",
"Create a tweet": "Создать твит",
"Reply to a tweet.": "Ответить на твит.",
"Text": "Текст",
"Media (1)": "Средства массовой информации (1)",
"Media (2)": "Средства массовой информации (2)",
"Media (3)": "Средства массовой информации (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "Текст твита",
"An image, video or GIF url or base64 to attach to the tweet": "Изображение, видео или GIF url или base64 для прикрепления к твиту",
"The ID of the tweet to reply too.": "ID твита для ответа тоже."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "Text",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,25 @@
{
"Twitter": "Twitter",
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "Text",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,24 @@
{
"Social media platform with over 500 million user": "Social media platform with over 500 million user",
"Api Key": "Api Key",
"Api Key Secret": "Api Key Secret",
"Access Token": "Access Token",
"Access Token Secret": "Access Token Secret",
"The api key": "The api key",
"The api key secret": "The api key secret",
"The access token": "The access token",
"The access token secret": "The access token secret",
"\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type": "\nIf you don't have the credentials down below, please follow these steps to obtain the required credentials:\n\n1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.\n\n2. Under the **Settings** tab then under **User authentication settings** section, click \"Set up\".\n\n3. **This step must be completed before generating the keys**, check on **Read and write** for \"App permissions\" and **Native App** for \"Type of App\", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .\n\n4. Go back to your app settings page and click the **Keys and tokens** tab.\n\n5. Next to **API key and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Api Key**\n\n **Api Key Secret**\n\n6. Next to **Access token and secret**, click \"Regenerate\" and copy the following values to the inputs below:\n\n **Access Token**\n\n **Access Token Secret**\n\n\n",
"Create Tweet": "Create Tweet",
"Create Reply": "Create Reply",
"Create a tweet": "Create a tweet",
"Reply to a tweet.": "Reply to a tweet.",
"Text": "文本",
"Media (1)": "Media (1)",
"Media (2)": "Media (2)",
"Media (3)": "Media (3)",
"Tweet ID": "Tweet ID",
"The text of the tweet": "The text of the tweet",
"An image, video or GIF url or base64 to attach to the tweet": "An image, video or GIF url or base64 to attach to the tweet",
"The ID of the tweet to reply too.": "The ID of the tweet to reply too."
}

View File

@@ -0,0 +1,94 @@
import {
PieceAuth,
Property,
createPiece,
} from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { TwitterApi } from 'twitter-api-v2';
import { createTweet } from './lib/actions/create-tweet';
import { createReply } from './lib/actions/create-reply';
const markdownDescription = `
If you don't have the credentials down below, please follow these steps to obtain the required credentials:
1. Go to [https://developer.twitter.com/en/portal/projects-and-apps](https://developer.twitter.com/en/portal/projects-and-apps) and click on your app settings.
2. Under the **Settings** tab then under **User authentication settings** section, click "Set up".
3. **This step must be completed before generating the keys**, check on **Read and write** for "App permissions" and **Native App** for "Type of App", fill in your website url and let the **Callback URI / Redirect URL** be **(your_website_url)/redirect** .
4. Go back to your app settings page and click the **Keys and tokens** tab.
5. Next to **API key and secret**, click "Regenerate" and copy the following values to the inputs below:
**Api Key**
**Api Key Secret**
6. Next to **Access token and secret**, click "Regenerate" and copy the following values to the inputs below:
**Access Token**
**Access Token Secret**
`;
export const twitterAuth = PieceAuth.CustomAuth({
description: markdownDescription,
props: {
consumerKey: Property.ShortText({
displayName: 'Api Key',
description: 'The api key',
required: true,
}),
consumerSecret: Property.ShortText({
displayName: 'Api Key Secret',
description: 'The api key secret',
required: true,
}),
accessToken: Property.ShortText({
displayName: 'Access Token',
description: 'The access token',
required: true,
}),
accessTokenSecret: Property.ShortText({
displayName: 'Access Token Secret',
description: 'The access token secret',
required: true,
}),
},
validate: async ({ auth }) => {
const { consumerKey, consumerSecret, accessToken, accessTokenSecret } =
auth;
const userClient = new TwitterApi({
appKey: consumerKey,
appSecret: consumerSecret,
accessToken: accessToken,
accessSecret: accessTokenSecret,
});
try {
await userClient.v2.me();
return { valid: true };
} catch (e) {
return {
valid: false,
error:
'Please make sure you have followed steps carefully and that your app is placed in a project.',
};
}
},
required: true,
});
export const twitter = createPiece({
displayName: 'Twitter',
description: 'Social media platform with over 500 million user',
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/twitter.png',
categories: [PieceCategory.COMMUNICATION],
authors: ["Abdallah-Alwarawreh","Salem-Alaa","kishanprmr","AbdulTheActivePiecer","khaledmashaly","abuaboud"],
auth: twitterAuth,
actions: [createTweet, createReply],
triggers: [],
});

View File

@@ -0,0 +1,78 @@
import {
ApFile,
Property,
createAction,
} from '@activepieces/pieces-framework';
import { TwitterApi } from 'twitter-api-v2';
import { twitterAuth } from '../..';
import { twitterCommon } from '../common';
import { z } from 'zod';
import { propsValidation } from '@activepieces/pieces-common';
export const createReply = createAction({
auth: twitterAuth,
name: 'create-reply',
displayName: 'Create Reply',
description: 'Reply to a tweet.',
props: {
tweet_id: Property.LongText({
displayName: 'Tweet ID',
description: 'The ID of the tweet to reply too.',
required: true,
}),
text: twitterCommon.text,
image_1: twitterCommon.image_1,
image_2: twitterCommon.image_2,
image_3: twitterCommon.image_3,
},
async run(context) {
await propsValidation.validateZod(context.propsValue, {
text: z.string().min(1),
});
const { consumerKey, consumerSecret, accessToken, accessTokenSecret } =
context.auth.props;
const userClient = new TwitterApi({
appKey: consumerKey,
appSecret: consumerSecret,
accessToken: accessToken,
accessSecret: accessTokenSecret,
});
try {
const media: ApFile[] = [
context.propsValue.image_1,
context.propsValue.image_2,
context.propsValue.image_3,
].filter((m): m is ApFile => !!m);
const uploadedMedia: Promise<string>[] = [];
media.forEach((m) => {
uploadedMedia.push(
userClient.v1.uploadMedia(Buffer.from(m.base64, 'base64'), {
mimeType: 'image/png',
target: 'tweet',
})
);
});
const uploaded = await Promise.all(uploadedMedia);
const response =
uploaded.length > 0
? await userClient.v2.reply(context.propsValue.text, context.propsValue.tweet_id, {
media: {
media_ids: [...uploaded],
},
})
: await userClient.v2.reply(context.propsValue.text, context.propsValue.tweet_id);
return response || { success: true };
} catch (error: any) {
throw new Error(
JSON.stringify({
code: error.code,
errors: error.errors,
})
);
}
},
});

View File

@@ -0,0 +1,73 @@
import {
ApFile,
createAction,
} from '@activepieces/pieces-framework';
import { TwitterApi } from 'twitter-api-v2';
import { twitterAuth } from '../..';
import { twitterCommon } from '../common';
import { z } from 'zod';
import { propsValidation } from '@activepieces/pieces-common';
import mime from 'mime-types';
export const createTweet = createAction({
auth: twitterAuth,
name: 'create-tweet',
displayName: 'Create Tweet',
description: 'Create a tweet',
props: {
text: twitterCommon.text,
image_1: twitterCommon.image_1,
image_2: twitterCommon.image_2,
image_3: twitterCommon.image_3,
},
async run(context) {
await propsValidation.validateZod(context.propsValue, {
text: z.string().min(1),
});
const { consumerKey, consumerSecret, accessToken, accessTokenSecret } =
context.auth.props;
const userClient = new TwitterApi({
appKey: consumerKey,
appSecret: consumerSecret,
accessToken: accessToken,
accessSecret: accessTokenSecret,
});
try {
const media: ApFile[] = [
context.propsValue.image_1,
context.propsValue.image_2,
context.propsValue.image_3,
].filter((m): m is ApFile => !!m);
const uploadedMedia: Promise<string>[] = [];
media.forEach((m) => {
uploadedMedia.push(
userClient.v1.uploadMedia(Buffer.from(m.base64, 'base64'), {
mimeType: m.extension ?mime.lookup(m.extension)|| 'image/png':'image/png',
target: 'tweet',
})
);
});
const uploaded = await Promise.all(uploadedMedia);
const response =
uploaded.length > 0
? await userClient.v2.tweet(context.propsValue.text, {
media: {
media_ids: [...uploaded],
},
})
: await userClient.v2.tweet(context.propsValue.text);
return response || { success: true };
} catch (error: any) {
throw new Error(
JSON.stringify({
code: error.code,
errors: error.errors,
})
);
}
},
});

View File

@@ -0,0 +1,27 @@
import { Property } from '@activepieces/pieces-framework';
export const twitterCommon = {
text: Property.LongText({
displayName: 'Text',
description: 'The text of the tweet',
required: true,
}),
image_1: Property.File({
displayName: 'Media (1)',
description:
'An image, video or GIF url or base64 to attach to the tweet',
required: false,
}),
image_2: Property.File({
displayName: 'Media (2)',
description:
'An image, video or GIF url or base64 to attach to the tweet',
required: false,
}),
image_3: Property.File({
displayName: 'Media (3)',
description:
'An image, video or GIF url or base64 to attach to the tweet',
required: false,
}),
};