Java SDKの使い方

7 個の投稿 / 0 new
最終投稿
#1 2017/3/15 (水) 23:58
urawareds

Java 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/3/15 (水) 23:59
urawareds

NeApiClientのインスタンスを作成できない

ご教授お願いします。

2017/3/17 (金) 10:17

RE:Java SDKの使い方

ご不便お掛けしてしまい申し訳ございません。
原因の調査を行う為にもう少し詳しい情報を教えていただけますでしょうか。
以下の情報を頂けると幸いです。
・SDKの設置方法
・実行したAPI名とその引数の情報
・実行した時のエラーメッセージ
・実際に試したコード

宜しくお願い致します。

2017/3/18 (土) 14:32 ( #3への返信)
urawareds

APIの使い方とサンプルコード(可能なら提供していただきたい)

お返事ありがとうございます。
現状を説明させていただきます。

・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を使うためのサンプルコードを
ご提示いただければ幸いです。

よろしくお願いします。

2017/3/22 (水) 12:29

RE: 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/3/24 (金) 21:50 ( #5への返信)
urawareds

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

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

実際、私はUIなしのWindowsサービスみたいなのJava プログラムを作ろうとしています。
Loginできて、必要なデータを取れればいいです。つまり redirect_uri指定なしの
APIが欲しいです。現在は指定できる redirect_uriがないため、localhostのIISホームページを
指定しています。

よろしくお願いします。

2017/3/29 (水) 10:19 ( #6への返信)

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

方法としては一度アクセストークンを取得してもらう必要があります。
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