欢迎使用 NanoBanana API!

本快速入门指南将带您了解使用我们的 AI 模型开始生成和编辑图像的基本步骤。

概览

身份验证

所有 API 请求都需要通过 Bearer Token 进行身份验证。
1

获取您的 API 密钥

访问 API密钥管理页面 获取您的API密钥。
2

添加到请求头

在所有请求中包含您的 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();

参数说明

必需参数

参数类型描述
promptstring图像生成的文本描述
typestring生成类型:TEXTTOIAMGEIMAGETOIAMGE
callBackUrlstringWebhook 回调 URL

可选参数

参数类型描述默认值
numImagesinteger生成图像数量 (1-4)1
imageUrlsarray用于编辑的输入图像 URL-
watermarkstring生成图像的水印文字-

下一步

支持

需要帮助?联系我们的技术支持: 准备好创建惊人的 AI 图像了吗?从上面的示例开始,探索完整的 API 功能!