概要
これは、Feishu Bitable を画像制作ラインに変える完全なワークフローです。運用担当者は1行に prompt と参照添付ファイルを入力し、添付ファイルは自動で OSS URL に変換され、その後 Coze ワークフローが Nano Banana Pro を呼び出し、最終的に生成された画像が添付ファイルとして再びその行に戻ります。ユーザー側のコード修正は一切不要です。 作者の Shuaila1996 が、実運用での利用からこの構成を整理したもので、Feishu のフィールドショートカット、アリババクラウド Function Compute 関数、そして Coze プラグインという、独立しつつ連携する 3 つの要素で成り立っています。
- 📦 形式: コードパッケージとして共有(GitHub では公開していません)
- 👤 作者: Shuaila1996
- 🎯 利用シーン: Feishu Enterprise Bitable + アリババクラウド + Coze CN
- 🔌 モデル:
gemini-3-pro-image-preview(Nano Banana Pro, via APIYI) - 📝 Feishu ショートカットとアリババクラウド関数の完全なソースはこのドキュメント内に埋め込まれています。Coze プラグインのソースは Nano Banana Pro Coze プラグイン にあります
主な機能
Bitable を作業台として使用
自動添付 → OSS
ユーザーごとのマルチキー
一括生成
行への直接書き戻し
明確なエラー通知
対応 APIYI モデル
アーキテクチャ
デプロイ手順
手順 1: Aliyun のインフラ
- OSS バケットを用意し、RAM サブアカウントに
oss:PutObjectとoss:ProcessObjectの権限を付与します - Function Compute (FC) を用意し、Node.js 18+ で HTTP トリガーの関数を作成します
- 依存関係をインストールします:
ali-oss - 環境変数を設定します(キーは絶対にハードコードしないでください):

手順 2: Aliyun FC 関数をデプロイする
aliyun-fc-oss-upload.js を FC 関数に配置します。この関数は次を行います:- Feishu ショートカットから転送されたバイナリを受け取ります
client.put経由で元ファイルをアップロードしますclient.processObjectSave経由で圧縮コピーを保存します(長辺 4500 / 品質 95)- 圧縮済みの公開 URL を、Feishu が解析できる
feishuWrapper構造でラップします
手順 3: Feishu フィールドショートカットを作成する
feishu-attachment-to-oss.ts をデプロイします。置き換えは 2 か所です:手順 4: Feishu Bitable のフィールドを設定する
Merged prompt の数式例:手順 5: Coze プラグインとワークフローをデプロイする
- Nano Banana Pro Coze Plugin に従って Python プラグインをデプロイします
- 著者の Coze ワークフロー書き出しをインポートします。内容は次のとおりです:
- 画像と prompt を分割するコードノード
- 「ユーザーごとの API key」辞書ノード(caller 名 → APIYI key)
- Nano Banana Pro プラグインノード
- 成功 / 失敗 / エラーの集約
- ワークフロー内の「ユーザーごとの API key」辞書を維持します
手順 6: Feishu の Coze ワークフローショートカットを接続する

- Coze からワークフロー token とワークフロー ID を入力します
- リクエストテンプレート内のフィールド名は Coze ワークフローの入力名と完全に一致させる必要があります
- 必須フィールドは Coze ワークフローの required フラグに従います
apichoice列にはapiyiを入れ、apiyi(0.35元/张)のような表示文字列は入れないでください。そうしないと辞書のルックアップに失敗します
手順 7: URL → 添付で結果をレンダリングする
- 直接購入: 公式 Coze の「URL → 添付」フィールドショートカットを使います
- 自作する: Feishu のドキュメントに従って、カスタムの URL→添付フィールドショートカットを実装します
Bitable マージ式
Bitable の「マージ済み prompt」式:CHAR(10) は改行で、Coze のコードノードが prompt と image URLs を \n で分割できるようにします.
Feishu フィールドショートカット完全ソース
以下は完全なfeishu-attachment-to-oss.ts で、Feishu のフィールドショートカットフレームワークにそのまま差し込めます。デプロイ前に、feishu-service のプレースホルダー 2 つだけを Aliyun FC の公開ドメイン / URL に置き換えてください。
Aliyun Function Compute 完全ソース
以下は完全なaliyun-fc-oss-upload.js で、Aliyun Function Compute (Node.js 18+) にそのまま貼り付けられます。認証情報はすべて環境変数から読み込みます — 絶対にハードコードしないでください。
Coze プラグインソース
Python プラグインcoze-nanobanana-pro.py は、Nano Banana Pro Coze プラグイン の「プラグイン完全ソース」セクションに完全に組み込まれており、別途ダウンロードする必要はありません。
セキュリティ注意事項
よくある質問
Feishu ショートカットが Aliyun FC に到達できない
Feishu ショートカットが Aliyun FC に到達できない
- FC の公開ドメインは
basekit.addDomainListにありますか(https:// なしで)? context.fetchは完全なhttps://URL を使っていますか?
Coze ワークフローでアカウントまたは設定エラーと表示される
Coze ワークフローでアカウントまたは設定エラーと表示される
apichoice列にapiyiが入っていますか(apiyi(0.35元/张)のような表示文字列ではなく)?- 呼び出し元は「per-user API key」辞書に登録されていますか?
- 呼び出し元の名前は Bitable の人員フィールドと完全一致していますか(空白や簡体字・繁体字の違いも含めて)?
画像は生成されたのに Feishu に表示されない
画像は生成されたのに Feishu に表示されない
- Coze の公式「URL → attachment」ショートカットを購入する(最も簡単)
- 独自の URL-to-attachment ショートカットを作成する
Aliyun FC は 500 を返すが OSS アップロードは成功した
Aliyun FC は 500 を返すが OSS アップロードは成功した
processObjectSave パラメータかバケットリージョンの不一致です。確認してください:- バケットで画像処理が有効になっていますか?
process.env.OSS_REGIONはバケットの実際のリージョンと一致していますか?- RAM サブアカウントに
oss:ProcessObject権限がありますか?
バッチ生成のスロットリングはどうすればよいですか?
バッチ生成のスロットリングはどうすればよいですか?
- Coze ワークフローの入口で同時実行数制限を追加する
- Bitable のトリガーフィールドショートカットを一度に 5〜10 行ずつバッチ実行する
- APIYI の異なるキーを呼び出し元ごとに分散し、レート制限を分散させる
完全なコードはどこですか? そのままコピーできますか?
完全なコードはどこですか? そのままコピーできますか?
feishu-attachment-to-oss.ts(Feishu フィールドショートカット)→ このページ上部の「Feishu Field Shortcut 完全ソース」を参照してくださいaliyun-fc-oss-upload.js(Aliyun FC)→ このページ上部の「Aliyun Function Compute 完全ソース」を参照してくださいcoze-nanobanana-pro.py(Coze プラグイン)→ Nano Banana Pro Coze Plugin の「プラグイン完全ソース」を参照してください