現在、YConnectServlet.javaを見本に、YahooID連携を行い、注文検索APIでデータを取得しています。
YahooID連携ボタンからログインを行い、注文検索APIによりデータは取得できていますが、12時間でリフレッシュトークンの有効期限が切れるため、
運用上問題があり、証明書を申請し4週間の間隔にしようとしております。
システムには、大きく分けて2プロセスがあり、
【1】.YahooID連携ボタンからログインを行いリフレッシュトークンを取得、データベースに保存
【2】.データベースに保存されているリフレッシュトークを使用し、アクセストークンを取得後、注文検索APIを動作させ情報の取得
を行っております。
証明書を申請し、ストアクリエイターProよりダウンロードを行い、ヘルプページ( http://developer.yahoo.co.jp/webapi/shopping/help.html )の
Javaの場合(サンプル) にある。
$ openssl pkcs12 -export -inkey "秘密鍵を指定" -in "証明書を指定" -out "出力ファイル名"
によりPKCS12のファイルを作成、サーバに配置を行い。サンプルプログラムを、リフレッシュトークンの取得前、 YConnectServlet.javaの場合
46行目の protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
のあとに記述し、コメントとなっている。
// SSL証明書チェック無効 ※Production環境では必ず有効にすること
// YConnectExplicit.disableSSLCheck();
をコメントをはずし有効にしました。
再度、YahooID連携ボタンからの実行を行い、注文検索のデータを取得できていることを確認
しかし、12時間後に【2】の動作を行うと注文検索APIの箇所で401エラーとなり取得できない状態となります。
【2】の動作で、リフレッシュトークンによりアクセストークンは取得できています。(証明書を必要としないAPIで使用するため取得できるのだと思っております。)
取得したアクセストークンを使用して、注文検索APIを呼ぶと401エラーとなります。
証明書の実装が正常に動作していないと判断しております。
そこで、幾つか質問なのですが
1.ヘルプページのサンプルコード(PKCS12ファイル読み込み)を記述する箇所は、リフレッシュトークンの取得時、アクセストークンの取得時、注文検索APIの実行時、どこに設定すればよいですか?
2.プロセスが2つに分かれておりますので、【1】と【2】それぞれで、サンプルコード(PKCS12ファイル読み込み)の記述が必要でしょうか?
3.YahooID連携ボタンの実行後、12時間後にしか結果がわかりませんが、実行後に確認する方法などありますでしょうか?
4.このプログラムを実行してOKが帰ってくれば証明書の確認は出来ているというような、サンプルコードはありますでしょうか?
5.証明書を使用する事の出来る3API、注文検索API、注文詳細API、注文内容変更APIの証明書を使用したフローやサンプルコードなどはありますでしょうか?
よろしくお願いいたします。