diff --git a/README.md b/README.md index 0c4afcc..5f7026b 100644 --- a/README.md +++ b/README.md @@ -34,13 +34,23 @@ See [n8n's installation guide](https://docs.n8n.io/integrations/community-nodes/ ## Credentials -1. Open [AceDataCloud applications](https://platform.acedata.cloud/console/applications), sign in and create or select an application. -2. Copy the application's API token. One AceDataCloud application token can access the platform services available to your account. -3. In n8n, create a **Fish Audio by AceDataCloud API** credential, paste the API Token, save it and confirm the credential test passes. -4. Select that credential on each Fish Audio node in your workflow. +1. Open [Ace Data Cloud → Applications](https://platform.acedata.cloud/console/applications?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=fishn8n_readme_api_key). Sign in, or register an account first. +2. Find **General application**. If it has not been created, choose **Initialize General Application**. A general key can use the services available to your account; a dedicated application's key is limited to its service. Check the required service/model access and [current pricing](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=fishn8n_readme_pricing). +3. Copy the **API Key** from the application card, or open **Keys / Manage Keys → Create** to create a separate key for this integration. Give it a recognizable name so you can revoke or rotate it independently. +4. When creating a key, review **Expiration Time**, **Set Usage Limitation**, and **Allowed APIs**. Enable only the restrictions you need, allow the operations you will call, then click **Create** and copy the token from the key list. Task lookup does not grant permission to submit a generation. Confirm the application's balance can cover your first request; any trial allowance is whatever your account currently displays. +5. Copy only the token value, without quotation marks, spaces, or `Bearer `. An API Key / API Token field expects this raw value; only a manually configured HTTP `Authorization` header needs the `Bearer ` prefix. A `platform-...` account-management token cannot replace a generation API key. + +![Copy an application API key or open Manage Keys](https://raw.githubusercontent.com/AceDataCloud/NanoBananaDify/2522b2f57210597af2db866445319334a1677a23/_assets/tutorial/get-api-key-en.png) + +![Create a separately named key with optional restrictions](https://raw.githubusercontent.com/AceDataCloud/NanoBananaDify/2522b2f57210597af2db866445319334a1677a23/_assets/tutorial/create-api-key-en.png) + +Save the key in the client's credential store or the environment variable shown below. Never put it in a prompt, shared workflow, screenshot, or Git commit. If authentication fails, check the full copied value, application/service access, expiration, usage limit, and balance before creating another key. + +In n8n, open a node and create a **Fish Audio by AceDataCloud API** credential. Paste the raw value into **API Token**, save, and select this credential on every node that needs it, including task readers. The token is masked and stored in n8n's credential store. The node sends Bearer authentication only to `https://api.acedata.cloud`. Its credential test queries an empty task batch and does not generate media. Do not use a platform management token. + ## Quick start and examples Import [Generate and wait](examples/generate-and-wait.json), assign credentials to **Create** and **Get Task**, and edit the generation parameters. One manual execution submits once, then queries every 15 seconds. The loop has a 30-minute deadline and explicit failure handling. A deadline stops waiting; it does not cancel a submitted service task. @@ -75,7 +85,7 @@ Disable **Simplify** to receive the API response unchanged. Batch queries emit o ## Billing, retries and errors -Generation uses your AceDataCloud balance. Check [current API documentation and pricing](https://platform.acedata.cloud/documents/fish-tts) before execution. `cost.amount` is in Credits, not USD; the conversion depends on your current package rate. +Generation uses your AceDataCloud balance. Check [current API documentation and pricing](https://platform.acedata.cloud/documents/fish-tts?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=fishn8n_readme_documents_fish_tts) before execution. `cost.amount` is in Credits, not USD; the conversion depends on your current package rate. Each incoming n8n item sends one generation request. Creation is not retried automatically and the node does not substitute a different model. Re-running Create, enabling retry-on-fail, or restarting the workflow can create another paid task. After a timeout, retrieve the existing task where possible. @@ -102,8 +112,8 @@ Releases are built from merged source through GitHub Actions with `npm publish - ## Resources and support -- [API documentation](https://platform.acedata.cloud/documents/fish-tts) -- [AceDataCloud Studio](https://studio.acedata.cloud) +- [API documentation](https://platform.acedata.cloud/documents/fish-tts?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=fishn8n_readme_documents_fish_tts) +- [AceDataCloud Studio](https://studio.acedata.cloud?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=fishn8n_readme_platform) - [Report an issue](https://github.com/AceDataCloud/FishN8N/issues) - [n8n community-node documentation](https://docs.n8n.io/integrations/community-nodes/)