欢迎使用 NanoBanana API!
本快速入门指南将带您了解使用我们的 AI 模型开始生成和编辑图像的基本步骤。
身份验证
所有 API 请求都需要通过 Bearer Token 进行身份验证。
添加到请求头
在所有请求中包含您的 API 密钥:Authorization: Bearer YOUR_API_KEY
保护您的 API 密钥安全,切勿公开分享。如果密钥被泄露,请立即在管理页面重置。
基本用法
1. 生成图像
首先创建您的第一个图像生成任务:
curl -X POST "https://api.nanobananaapi.ai/api/v1/nanobanana/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "美丽的山间日落风景",
"type": "TEXTTOIAMGE",
"numImages": 1,
"callBackUrl": "https://your-callback-url.com/webhook"
}'
响应:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task12345"
}
}
2. 检查任务状态
使用返回的 taskId 来监控进度:
curl -X GET "https://api.nanobananaapi.ai/api/v1/nanobanana/record-info?taskId=task12345" \
-H "Authorization: Bearer YOUR_API_KEY"
状态值:
0: 生成中 - 任务正在处理中
1: 成功 - 任务成功完成
2: 创建任务失败 - 任务创建失败
3: 生成失败 - 任务创建成功但生成失败
完整示例
这是一个完整的工作流程示例:
class NanoBananaAPI {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = 'https://api.nanobananaapi.ai/api/v1/nanobanana';
}
async generateImage(prompt, options = {}) {
const response = await fetch(`${this.baseUrl}/generate`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt,
type: options.type || 'TEXTTOIAMGE',
numImages: options.numImages || 1,
callBackUrl: options.callBackUrl,
watermark: options.watermark,
imageUrls: options.imageUrls
})
});
const result = await response.json();
if (!response.ok || result.code !== 200) {
throw new Error(`生成失败: ${result.msg || '未知错误'}`);
}
return result.data.taskId;
}
async getTaskStatus(taskId) {
const response = await fetch(`${this.baseUrl}/record-info?taskId=${taskId}`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${this.apiKey}`
}
});
const result = await response.json();
return result;
}
async waitForCompletion(taskId, maxWaitTime = 300000) {
const startTime = Date.now();
while (Date.now() - startTime < maxWaitTime) {
const status = await this.getTaskStatus(taskId);
switch (status.successFlag) {
case 0:
console.log('任务生成中...');
break;
case 1:
console.log('生成成功完成!');
return status.response;
case 2:
case 3:
throw new Error(status.errorMessage || '生成失败');
}
await new Promise(resolve => setTimeout(resolve, 3000));
}
throw new Error('生成超时');
}
}
// 使用示例
async function main() {
const api = new NanoBananaAPI('YOUR_API_KEY');
try {
console.log('开始图像生成...');
const taskId = await api.generateImage('美丽的风景画');
console.log(`任务ID: ${taskId}。等待完成中...`);
const result = await api.waitForCompletion(taskId);
console.log('图像生成成功!');
console.log('结果图像URL:', result.resultImageUrl);
} catch (error) {
console.error('错误:', error.message);
}
}
main();
参数说明
必需参数
| 参数 | 类型 | 描述 |
|---|
prompt | string | 图像生成的文本描述 |
type | string | 生成类型:TEXTTOIAMGE 或 IMAGETOIAMGE |
callBackUrl | string | Webhook 回调 URL |
可选参数
| 参数 | 类型 | 描述 | 默认值 |
|---|
numImages | integer | 生成图像数量 (1-4) | 1 |
imageUrls | array | 用于编辑的输入图像 URL | - |
watermark | string | 生成图像的水印文字 | - |
下一步
需要帮助?联系我们的技术支持:
准备好创建惊人的 AI 图像了吗?从上面的示例开始,探索完整的 API 功能!