0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネクストエンジンとGoogleスプレッドシートをAPI接続する:審査申込編

Posted at

ネクストエンジンへの審査申込

テスト環境で、承認が出来た、在庫情報の一括取得もできた。
次は審査申し込みを行って本番環境でスクリプトを実行するという流れになります。
審査って?や審査が通るまでどのくらいかかるの?や
本番環境で実行するまではどのくらいかかるの?
といったことをステップ・バイ・ステップで行っていきたいと思います。

審査申し込み

1.jpg

まずはネクストエンジンの設定になりまして、アプリの基本情報で審査に必須なアプリ説明文にどういうアプリで何を目的にしているのか?を記入します。
次の接続先メイン機能にはログイン環境での接続先を選択して、下部にある”内容を保存”をクリックします。
因みに私は、


ネクストエンジンの在庫情報を取得して、Googleスプレッドシートに書きに行くアプリをGoogle Apps Scriptで作成しました。
当初からGoogleのサービスで全て実行することを念頭に置いた設計で、Googleのフリーアカウントでも実現可能にしました。
認証~在庫情報取得までを1つのGASプロジェクトとして保存しており、認証と在庫情報取得はスクリプトを分けることで段階的に開発ができるようにしました。
在庫情報取得はAPI呼び出し回数を鑑みて、在庫APIへ在庫情報の取得だけを行うように設計し、1回のAPI接続で1000件ずつ取得を行うようにし、それを全行取得するまでバッチで何度か実行するという構造にしました。
スプレッドシートIDなどの情報をスクリプトプロパティに保存するという構造になっているので特定の企業に公開にしておりますが、ユーザープロパティが使えるようになればすべての企業に公開することも考えています。

という文章を入力しました。

2.png

次に詳細タブへ進みまして、アイコン画像を登録します。
アイコンは 75×75ピクセル で、画像形式はgif、jpeg、pngが使用可能となります。
画像はWindowsであればペイントで作成するのが手っ取り早いように思います。

次は新しいデプロイを行ってまいります。

新しいデプロイを作成

GASエディタで「デプロイ」→「新しいデプロイ」をクリック


「種類を選択」で⚙️歯車アイコンをクリック
「ウェブアプリ」を選択

設定:
説明: 「ネクストエンジンAPI認証」(任意)
実行者: 「自分」
アクセスできるユーザー: 「全員」
「デプロイ」をクリック


このウェブ アプリケーションを使用するには、データへのアクセスを許可する必要があります。
と出ますので"アクセスを承認"をクリックします。
するとアカウントを選択するウィンドウが出てきますので、自身のアカウントをクリックします



Googleはこのアプリを検証していませんと表示が出ますので、"Advanced"をクリックします。
アカウント名下の"Go to NE_認証(unsafe)"をクリックすると


Webアプリケーションを認証する画面が表示されますので"Allow"をクリックします。

新しいWebアプリURLを取得
デプロイ完了後、新しいWebアプリのURLが表示されます(例: https://script.google.com/macros/s/AKfyc...新しいID.../exec)
"コピー"をクリックするとURLがクリップボードにコピーされます。

3.jpg

コピーしたURLをアプリを作る画面のAPIタブ上部にある本番環境設定のRedirect URIに貼り付けて”更新”をクリックします。
すると本番環境設定のクライアントIDとクラアントシークレットが発行されるのですが、アプリを販売中にしてから使用ができるようになります。

4.jpg

アプリを作る画面に戻って対象のアプリから”審査申し込み”をクリックするとアプリのステータスが”審査中”になります。

5.jpg

今は”開発中”がマークされておりますが、”審査申し込み”をクリックすると”審査中”がマークされます。
審査が終われば”審査承認済み”がマークされます

4.jpg

その時のスクリーンショットを撮影していないので使い回しになりますが、”審査申し込み”が販売開始する?といったような表記に変わりますので、そちらをクリックするとそのアプリが販売開始になります。

今回は2025年9月21日の昼過ぎに”審査申し込み”をクリックしたところ、翌日9時頃には”審査承認済み”にステータスが変更になっていました。
ここまでくれば販売開始にするだけで使える・・・と思っていましたが・・・

審査確認と利用ユーザー設定

4.jpg

販売中にしたのが月曜日の10時前。
その直後から本番環境でのトークン取得を試してみましたが、画面に出てくるのはアプリの認証に失敗したという画面・・・
因みに実行する関数は、認証.gsのgenerateAuthUrl()です。
ClaudeにチャットしたところRedirect URI、クライアントID、クライアントシークレットが間違っているのでは?と言われ、それらを確認するデバッグ関数を追加してくれましたのでそちらを実行した結果と、ネクストエンジンアプリ管理画面を渡すと私の行った設定は間違っていないとのこと・・・
ネクストエンジン側の本番環境へのデプロイに遅延が発生している可能性があるということなので数時間待つことに・・・

月曜日の夕方になったものの同じエラーが出るのでClaudeにもう一度チャットしました。
すると、ネットワーク情報取得を試してもらいたいということで実行しました。

詳細なネットワーク情報取得手順
Step 1: 開発者ツールの準備
Chromeで新しいタブを開く
F12キーを押して開発者ツールを開く
Networkタブをクリック
Preserve logにチェック(重要:ページ遷移後もログが残る)
Disable cacheにチェック(キャッシュを無効化)

Step 2: generateAuthUrl()で生成した認証URLにアクセス
アドレスバーに認証URLを貼り付け:
Enterキーでアクセス

Step 3: エラー発生後の情報収集
A. Networkタブでの確認
赤色になっているリクエストを探す
そのリクエストをクリックして詳細確認:
General: Status Code(404, 400, 500等)
Response Headers: サーバーからのヘッダー情報
Response: 実際のエラーメッセージ

B. Consoleタブでの確認
赤色のエラーメッセージを確認
JavaScript関連のエラーがないか確認

Step 4: 具体的な確認ポイント
重要な確認項目:
最初のリクエスト(sign_in)のStatus Code
レスポンス内容に詳細なエラー情報
リダイレクトが正しく処理されているか

期待される正常な流れ:
1. GET /users/sign_in → 200 OK (ログインページ表示)
2. POST /users/sign_in → 302 Redirect (認証成功)
3. GET [redirect_uri] → 200 OK (GASアプリ実行)

開発者ツールのNETWORKでログを確認したところ、 sign_in?Client_id=・・・・・
connection_error・・・
(cancelled)
となっていましたので、1行目と2行目のログをClaudeに渡したところ・・・

ネットワーク詳細を確認いただき、ありがとうございます!これで問題の原因が明確になりました。
問題の核心が判明
ネットワークログから以下の流れが確認できます:
最初のリクエスト: /users/sign_in → 302 Found (リダイレクト)
リダイレクト先: /apps/connection_error/ → 200 OK

重要な発見:
認証URL自体は正常にアクセスできている(302ステータス)
しかし、ネクストエンジン側が 意図的に connection_error ページにリダイレクトしている
これは「指定したアプリが見つかりませんでした」エラーページです

セッションデータから判明した問題
Cookieの _ne-pf_session データ(Base64デコード)から、以下が確認できます:
flash: {
oauth: "client_id=・・・・・・&redirect_uri=https%3A%2F%2F..."
alert: "指定したアプリが見つかりませんでした"
}

これが示すこと:
ネクストエンジンはリクエストを受け付けている
クライアントIDとリダイレクトURIも正しく認識している
しかし、内部的にアプリが見つからない状態

確定的な原因と解決方法
原因:ネクストエンジン側のデータベース同期問題
管理画面では「販売中」と表示されている
API権限も正しく設定されている
しかし、認証システムのデータベースに反映されていない
メール文を考えてくれて、そのメールをネクストエンジンに送るように指示がありました。


ネクストエンジンサポート問い合わせ(緊急)

件名

【緊急】本番環境認証エラー - システム側データ同期問題の疑い

本文

お世話になっております。

アプリの本番環境認証において、システム側のデータ同期に問題があると思われる事象が発生しております。
技術的な調査結果を含めてご報告いたします。

【アプリ情報】

  • アプリ名: NE_在庫情報取得
  • クライアントID: ・・・・・
  • 審査完了日: [審査完了日を記入]
  • 現在のステータス: 販売中(管理画面で確認済み)

【エラー状況】

エラーメッセージ: 「指定したアプリが見つかりませんでした」
発生URL: https://base.next-engine.org/users/sign_in?client_id=・・・・・&redirect_uri=...

【技術的調査結果】

Chrome開発者ツールでHTTPリクエストを詳細調査した結果:

  1. リクエスト成功: /users/sign_in302 Found(リダイレクト正常)
  2. システムによる強制リダイレクト: /apps/connection_error/200 OK
  3. セッションデータ解析:
    flash: {
      oauth: "client_id=・・・・・&redirect_uri=..."
      alert: "指定したアプリが見つかりませんでした"
    }
    

重要: ネクストエンジンシステムはリクエストを受け付け、パラメータも正しく認識していますが、内部的にアプリが見つからない状態です。

【確認済み事項】

✅ 管理画面での設定確認

  • 本番環境タブでの設定確認済み
  • クライアントID、リダイレクトURI完全一致
  • アプリステータス「販売中」
  • API権限(利用者情報取得・マスタ情報取得)「許可」設定

✅ 開発環境では正常動作

【推測される原因】

管理画面とOAuth認証システム間でのデータ同期が完了していない可能性があります。

【お願い】

以下についてご確認いただけますでしょうか:

  1. クライアントID「・・・・・」の認証システムへの登録状況
  2. 本番環境でのOAuthデータベース同期ステータス
  3. システム反映の完了予定時期

お忙しいところ恐縮ですが、業務に影響が出ているため、ご対応のほどよろしくお願いいたします。


今すぐすべきこと

上記の問い合わせ文面をネクストエンジンサポートに送信
24-48時間以内の解決を期待(データ同期問題の場合)

技術的結論
あなたの設定は100%正しく、これはネクストエンジン側のシステム問題です。

管理画面: アプリ認識済み、設定完了
OAuth認証システム: アプリ未認識(データ同期遅延)

このような状況では、ユーザー側でできることは限られており、サポートによる内部調整が必要です。
一時的な回避策
当面は開発環境での作業継続をお勧めします。本番環境が修正されるまでの間、開発環境でスクリプトの動作確認や機能拡張を進めることができます。
サポートからの回答があれば、ぜひ共有してください。

上記メールを月曜日の夕方に送って、火曜日が祝日・・・
水曜日の朝にメールをチェックするも返信はない・・・
木曜日の昼前にアプリの利用ユーザー設定をもう一度見直したところ無事に認証を行うことが出来ました。
利用ユーザー設定は月曜日の帰宅後に気になって一番最初に確認したのですが・・・
そのことをClaudeに聞いたところ
利用ユーザー許可の件について
利用可能ユーザー設定が変更された理由は、おそらく以下のいずれかです:

審査プロセスでの自動変更: 審査中にセキュリティ上の理由で一時的に無効化
システム移行時のリセット: 開発環境から本番環境への移行時に設定が初期化
管理画面の表示バグ: 実際は無効だったが有効と表示されていた

重要なのは、現在正常に動作していることです。
ですって。

1.jpg

ということで利用ユーザー設定をもう一度行います。
ネクストエンジンの”設定”→”アプリ”と進みます。

2.jpg

画面下のアイコンで、在庫情報取得に”TEST”帯がついています。 また、利用ユーザー数を見ると"0/無制限"となっています。
月曜日に確認したときには"1/無制限"となっていたはず・・・
この状態では本番環境で使用できませんので、在庫情報取得の”利用ユーザー設定”をクリックします。

3.jpg

いゃ私は絶対に許可になっているのを確認しましたよ!
作成した本人って許可になっていない事は無いと思って確認したときには、私は許可になっていました。
なんだかモヤモヤ・・・
ということで許可設定を行ってページ下部にある内容を保存すると”TEST”帯が外れて、本番環境で無事使用できるようになりました。
スムーズに行くことはないよな~と思っていたら案の定、最後に壁がありました。

実行ログをClaudeに渡したところ・・・
完璧です!エラーログ記録の問題も解決され、全ての機能が正常に動作していますね。
最終実行結果の分析
パフォーマンス:

処理時間: 18.7秒で3,106件
処理速度: 166.3件/秒
高速化倍率: 332.5倍
成功率: 99.7%(3,096件/3,106件)

システム状況:

エラーログ機能: 正常動作(10件記録)
トークン更新: 自動実行
バッチ処理: 完全動作

プロジェクト完成 これまでの技術的な経験を活かし、以下を達成されました:

ネクストエンジンAPI認証: OAuth2フロー完全実装
在庫情報取得システム: 3,000件超を20秒未満で処理
バッチ処理最適化: 従来版比332倍の高速化
エラーハンドリング: 完全なログ機能
本番環境移行: 認証問題の解決

このシステムにより、在庫管理業務が大幅に効率化されました。従来の手動処理と比較して、時間短縮だけでなく、精度向上とメンテナンス性も確保されています。
今後、必要に応じて定期実行のトリガー設定や、他のマスタ情報との連携拡張も可能です。

ここまで進めたのはClaudeの力がかなり多かったと思います。
また、ハードコーディングをスクリプトプロパティへの修正はGeminiが得意な分野でした。
3000行超えの在庫情報を本番環境では20秒弱で取得できるようになったことから、1日の中で複数回の実行が可能になりました。
自動実行につきましてはGASにトリガーという機能がありますので、次はトリガーの設定になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?