LoginSignup
1
1

More than 1 year has passed since last update.

特許情報取得APIのトークン取得

Last updated at Posted at 2022-01-17

1 特許情報取得APIとは

 特許情報取得APIとは、日本国特許庁が提供するサービスであり、特許情報を取得するためのRest-APIです。今月(2022年1月)になってからサービスを開始したので、未だ情報の蓄積がなされておりません。よって、ここでは特許情報取得APIについて簡単に説明すると共に、トークンの取得方法について説明します。

特許情報取得API 利用規約 はこちらです。

特許情報取得API 利用の手引き はこちらです。

API情報提供サイト はこちらです。

2 概略利用方法

2.1 手続き

 特許情報取得APIは、令和4年1月現在にて無料で提供されているものですが、利用規約に同意した上で、特許庁に利用者登録をしなければ使用できません。利用登録方法についても、APIを利用した特許情報の試行提供を開始しますのページに記載されていますので、それに従って特許庁に申し込んでください。
 特許庁から存在確認の電話が来て暫くすると、IDとパスワードとトークン取得パスが通知されます。
 なお、トークン取得パスは一般には非公開とのことですので、以下にてトークン取得パスは伏せさせていただきます。

2.2 認証と情報取得

(1)先ず、IDとパスワードをヘッダに設定して、トークン取得パスに対してPOSTを実行すると access_token と refresh_token が取得できます。
 access_token は、1時間に亘って有効です。
 refresh_token は、access_token を更新するためのトークンであり、8時間に亘って有効です。

(2) refresh_token の有効期間内に refresh_token をヘッダに設定して、トークン取得パスに対してPOSTを実行すると access_token と refresh_token を更新できます。

(3)取得した access_token をヘッダに設定して、各情報取得パスに対してGETを実行すると特許情報が取得できます。

3 トークン取得について

3.1 curl.exe による方法

この方法は、弁理士の椿豊先生にご教示いただいたものです。
Windows10のコマンドプロンプトを開いて、以下のコマンドを実行してください。トークンが取得できます。

Windows10のコマンドプロンプト
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=password" --data-urlencode "username=ユーザ名" --data-urlencode "password=パスワード(未エンコード)" https://ip-data.jpo.go.jp/(トークン取得パス)

JSON形式のトークンが取得できます。標準出力なのでリダイレクト可能です。

コマンドプロンプト.PNG

3.2 VBAによる方法

 Excelのワークシートを開いて、マクロボタンをクリックしたのち、「作成」ボタンをクリックして Visual Basic for Application エディタを開くと、下記コードをコピペしてください
 そして、トークン取得パスとユーザ名とパスワードを設定して test_auth_token() を実行すると、メッセージボックスに、Httpレスポンスが表示され、その後に取得したトークンが表示されます。

get_token
Option Explicit

'----------------------------------------------------------------------
' 機能:特許情報取得API? 認証手続
'----------------------------------------------------------------------
Sub test_auth_token()
     Dim objweb As Object
     Set objweb = CreateObject("MSXML2.ServerXMLHTTP")

     Call objweb.Open("POST", "https://ip-data.jpo.go.jp/(トークン取得パス)", False)
     Call objweb.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
     Dim szBody As String
     szBody = "grant_type=password"
     szBody = szBody & "&username=" & encodeUrlUtf8("ユーザ名(未エンコード)")
     szBody = szBody & "&password=" & encodeUrlUtf8("パスワード(未エンコード)")
     objweb.Send (szBody)
     MsgBox (objweb.Status)
     MsgBox (objweb.responseText)
End Sub
'----------------------------------------------------------------------
' 文字列をURLエンコード
'----------------------------------------------------------------------
Public Function encodeUrlUtf8(ByRef strSource As String) As String
     Dim objSC As Object

     Set objSC = CreateObject("ScriptControl")
     objSC.Language = "Jscript"
     encodeUrlUtf8 = objSC.CodeObject.encodeURIComponent(strSource)
     Set objSC = Nothing
End Function

正常に設定できたならば、先ずhttpステータス200が表示されます。
httpステータス.PNG

次にアクセストークンを含んだJSONが表示されます。但し文字列が長いので途中までです。
トークンメッセージボックス.PNG

3.3 Talend API による方法

Talend APIとは、Rest-API をテストするためのクローム拡張です。もちろん無料です。

Talend APIを使って access_token を取得可能です。

talented_api01.PNG

(1)METHOD として POST を選択します。
(2)HOST に https://ip-data.jpo.go.jp/(トークン取得パス) を設定します。
(3)Headers に Content-Type: application/x-www-form-urlencoded を設定します。
(4)Body に grant_type=password&username=ユーザ名(エンコード済)&password=パスワード(エンコード済) を設定します。
(5)Send ボタンをクリックして、Response 200 が返されればOKです。以下がレスポンスペインです。

talented_api02.PNG

なお、URLエンコードされたユーザ名とパスワードを得るには、例えばURLエンコード・デコードのページを使ってください。
 手作業で半角文字列をURLエンコードする場合には、例えば「a~z」「A~Z」「0~9」「'」「.」「-」「*」「)」「(」「_」はそのまま変更せず、それ以外の文字を %に続き、文字コードを16進数2桁で記載してください。

4 Talend APIによる特許情報取得

 なお、取得した access_token を使って Talend API により 特許情報を取得する方法を以下に示します。

talented_api11_app_progress.PNG

(1)METHOD として GET を選択します。
(2)HOST に 特許情報取得APIを設定します。
   ここでは経過情報取得API:https://ip-data.jpo.go.jp/api/patent/v1/app_progress/(出願番号)
   を設定しています。
(3)Headers に Authorization: Bearer (アクセストークン) を設定します。
(4)Send ボタンをクリックして、Response 200 が返されればOKです。以下がレスポンスペインです。

talented_api12_app_progress.PNG

Response のBody に特許経過情報が取得されています。

1
1
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
1
1