コンテンツにスキップ

ネクストエンジン API 開発者フォーラム: Java SDKの使い方

ネクストエンジン API の開発環境・SDKについてに関する開発者フォーラムの質問と回答。クライアントアプリ・ストア連携・エンジン利用についてのQ&A。

投稿者: 匿名ユーザー 日時: 2017/03/15

カテゴリ: 開発環境・SDKについて

皆さま、NE担当様

お世話になっております。RisukaiのGaoと申します。

近日、Java SDKを使って、データを取りたいですが、

NeApiClientのインスタンスを作成する段階で、失敗しています。

引数は以下:

・request: ServletのGetメソッドの引数request

・response: ServletのGetメソッドの引数response

・client_id: 「アプリを作る」で生成されたclient_id

・client_secret: 「アプリを作る」で生成されたclient_secret

・redirect_url: https://api.next-engine.org/api_app/company

フォローをお願いいたします。

よろしくお願いします。


匿名ユーザー(質問者) — 2017/03/15

Section titled “匿名ユーザー(質問者) — 2017/03/15”

ご教授お願いします。

ご不便お掛けしてしまい申し訳ございません。

原因の調査を行う為にもう少し詳しい情報を教えていただけますでしょうか。

以下の情報を頂けると幸いです。

・SDKの設置方法

・実行したAPI名とその引数の情報

・実行した時のエラーメッセージ

・実際に試したコード

宜しくお願い致します。

匿名ユーザー(質問者) — 2017/03/18

Section titled “匿名ユーザー(質問者) — 2017/03/18”

お返事ありがとうございます。

現状を説明させていただきます。

・SDKの設置が成功:uid・stateが正常に取得できたため。

ただし、clientのコンストラクタの引数redirect_uriはlocalhostのURLを指定した、

コードは以下です。redirect_urlの指定が不正か、使い方が間違ったか、ご指摘ください。

  @GetMapping(value = “/test”)

@ResponseBody

public Object test(HttpServletRequest request, HttpServletResponse response) {

try {

NeApiClient client = new NeApiClient(request, response, “N8uUklihEsnAId”,

“client secret”,“http://localhost:8080/api/re”);

client.neLogin();

} catch (Exception e) {

e.printStackTrace();

}

return "";

}

・下記の受注伝票検索APIでメイン機能中の受注レコード(ステータスが新規のもの)を取得したいですが、

入力パラメータの使い方が不明です。

https://developer.next-engine.com/api/api_v1_receiveorder_base/search

利用しているJava APIメソッドは

apiExecute(String path, HashMapapi_params, String redirect_uri) です。

access_token、refresh_token、wait_flag、fields、offset、limit

を上記の引数api_paramsに記入することを理解しておりますが、

fields、比較演算子とoffsetのところは分かりません。

また、redirect_uriはSDK ソースコードには

「ユーザーがネクストエンジンログインをした後のアプリケーションサーバーのURI」と書いてありますが、

Clientのコンストラクタに指定したredirect_uriのように、

ローカルのアドレスで宜しいでしょうか?具体的に何のアドレスを指定すればよいのか

教えていただきたいです。

お忙しいところ恐縮ですが、この2つAPIを使うためのサンプルコードを

ご提示いただければ幸いです。

よろしくお願いします。

NeApiClientインスタンス作成後のneLoginメソッドの使い方は以下になります。

@param request リクエスト

@param response レスポンス

@param client_id クライアントID

@param client_secret クライアントシークレット

@param redirect_uri ログイン後のアプリケーションサーバーのリダイレクト先を指定

 NeApiClient client = new NeApiClient(request,response,client_id,client_secret, redirect_uri);

 client.neLogin();

実際に試されたコードで問題ないように思われます。

redirect_uriの設定ですが、ログイン後に遷移させたいURIを指定します。アプリの起動直後の場合はTOPページを指定する事になると思います。

redirect_uriはネクストエンジン本体の管理画面のアプリを作るで作成された対象のアプリの[API]タブの[Redirect URI]でTOPページでされたホスト以外を設定する事は出来ません。

以下、受注伝票検索API利用のサンプルコードになります。

 

 *受注日> 2017-01-19 00:00:00 の伝票を3件目から取得

 NeApiClient client = new NeApiClient(accessToken, refreshToken);

 HashMap api_params = new HashMap();

 api_params.push(“receive_order_date-gt”, “2017-01-19 00:00:00”);

 api_params.push(“offset”, “2”);

 HashMap result = client.apiExecute(” /api_v1_receiveorder_base/search”, api_params);

条件に指定するためのフィールドはこちらをご覧ください。

https://developer.next-engine.com/api/api_v1_receiveorder_base/search

フィールド一覧タブを選択していただくと、指定できる項目を確認する事が出来ます。

比較演算子についてはこちらをご覧ください。

https://developer.next-engine.com/api/param/operator_compare

offsetですが検索結果のn+1番目から取得する設定になります。

0を設定すると最初から 2を設定すると検索結果の3件目から取得する事になります。

宜しくお願い致します。

匿名ユーザー(質問者) — 2017/03/24

Section titled “匿名ユーザー(質問者) — 2017/03/24”

ご教授ありがとうございました。

実際、私はUIなしのWindowsサービスみたいなのJava プログラムを作ろうとしています。

Loginできて、必要なデータを取れればいいです。つまり redirect_uri指定なしの

APIが欲しいです。現在は指定できる redirect_uriがないため、localhostのIISホームページを

指定しています。

よろしくお願いします。

方法としては一度アクセストークンを取得してもらう必要があります。

uid・stateを取得できたのであれば取得したuid・stateでアクセストークン取得用のapiでアクセストークンを取得します。

uid・stateは有効期限が5分なので、5分以内にアクセストークンを取得する必要があります。

アクセストークン取得用のapiはこちらをご覧ください。

 https://developer.next-engine.com/api/api_v1_neauth

 [注]アクセストークンを取得するには、https通信が行えるweb環境が必要になります。

アクセストークン取得後、SDKでデータを取得することができます。

 NeApiClient client = new NeApiClient([上記で取得したaccessToken], [上記で取得したrefreshToken]);

アクセストークンは有効期限があるため、注意が必要になります。

詳しくはFAQをご参照ください。

 ネクストエンジンAPIはバッチ(コマンドライン)での利用は可能ですか?

 https://developer.next-engine.com/faq