生育予測情報:AuthenticationKey
- 公開日
- 更新日 2024-11-19
利用条件
概要
API名称
カテゴリー
説明
本APIはビジョンテック提供の生育予測情報を取得する為のAPIです。 本APIの利用には、ビジョンテックとのライセンス契約が必要となります。 ライセンス契約につきましては、ビジョンテック(tec@vti.co.jp)にお問い合わせください。
添付ファイル
ー
データの更新頻度
リクエスト
新URL
New!
ー
旧URL(2025年度末で終了予定)
https://api.wagri.net/API/Public/GrowthVti/AuthenticationKey?userid={userid}&password={password}
説明
本メソッドは、ビジョンテックが提供する公開APIを除く、APIを利用する前に認証キーを発行するメソッドです。 ビジョンテック提供のAPIを利用する際には、パラメータにユーザIDと認証キー(本メソッドで取得) を加えることで初めて利用可能となります。
認証キーの有効期間はリクエストしてから30分間とし、有効期間内に再リクエストされた場合は、 認証キーは上書きされ、その前のキーは無効となります。
HTTPメソッド
パラメータ
URLデータ定義
認証キー発行
| 名称 | 型 | サイズ | 値の説明 |
|---|---|---|---|
| userid | ユーザーID | string | Required |
| password | パスワード | string | Required |
新呼出例
New!
ー
旧呼出例(2025年度末で終了予定)
ー
レスポンス
レイアウト
レスポンスデータ定義
Result
| 名称 | 型 | サイズ | 値の説明 |
|---|---|---|---|
| Result | string | ||
| ResultStatus | リザルトステータス | string | |
| ErrCode | エラーコード | string | |
| ErrMsg | エラーメッセージ | string | |
| ServerTime | APIサーバの処理日時 | string | Format: yyyy-MM-dd HH:mm:ss.ffff |
| AuthenticationKey | string | ||
| Key | 認証キー文字列 | string | Length: 64 |
| IssueTime | 認証キー発行日時 | string | Format: yyyy-MM-dd HH:mm:ss.ffff |
レスポンス例
ー
ステータスコード
| コード | 名称 | 値の説明 |
|---|---|---|
| 400 | Bad Request | リクエストが不正です。 |
| 401 | Unauthorized | 認証情報が不正です。 |
| 403 | Forbidden | リソースのアクセスが禁止されています。 |
| 500 | Internal Server Error | サーバー内部でエラーが発生しました。 |
サンプルソースコード
プログラム記述例(WAGRI共通)
import requests
url = "https://api.wagri.net/API/Public/AgriculturalLand/SearchByCityCode"
payload = {
'CityCode': '432041'
}
headers = {
'X-Authorization': 'アクセストークン',
}
response = requests.get(url, headers=headers, params=payload)
print(response.text)
プログラム記述例(個別API)
PHP
1)アクセストークン認証用スクリプト
WAGRIのアクセストークンを取得する為のスクリプトです。
WAGRI_checkAuth.php
<?php
require_once 'FileController.php';
$client_id="****";
$client_secret="****";
$url = "https://api.wagri.net/Token";
$headers = array(
'Content-Type: application/x-www-form-urlencoded',
);
$data = array(
'grant_type' => "client_credentials",
'client_id' => $client_id,
'client_secret' => $client_secret
);
$content = http_build_query($data);
$options = array('http' => array(
'method' => 'POST',
'content' => $content,
'header' => implode("\r\n", $headers),
'ignore_errors' => true,
));
$out = file_get_contents($url, false, stream_context_create($options));
preg_match("/[0-9]{3}/", $http_response_header[0], $stcode);
if((int)$stcode[0] >= 200 && (int)$stcode[0] <= 299){
$result = json_decode($out);
print_r($result);
$controller = new FileController();
$controller->setToken($result);
} else {
throw new Exception("リクエストが不正です。\n");
}
?>
4行 $client_id=””; 5行 $client_secret=””; の「****」にWAGRIのclient_id、client_secretの入力が必要です。
2)GrowthVtiを使うための認証用スクリプト
GrowthVtiを使用するための認証キーを取得する為のスクリプトです。
checkAuth_token.php
<?php
require_once 'FileController.php';
$controller = new FileController();
$token = $controller->getToken();
if($token === false){
return false;
}
$url = "https://api.wagri.net/API/Public/GrowthVti/AuthenticationKey?";
$header = array("X-Authorization:" . $token);
$context = array(
"http" => array(
"method" => "GET",
"content-type" => "json",
"header" => implode("\r\n",$header),
'ignore_errors' => true,
)
);
$userid="****";
$pass="****";
$url = $url . "userid=" .$userid ."&password=" .$pass;
$out = file_get_contents($url, false, stream_context_create($context));
preg_match("/[0-9]{3}/", $http_response_header[0], $stcode);
if((int)$stcode[0] >= 200 && (int)$stcode[0] <= 299){
$result = json_decode($out);
print_r($result);
$controller->setAuthKey($userid, $result);
} else {
throw new Exception("リクエストが不正です。\n");
}
?>
22行 $userid=””; 23行 $pass=””; の「****」にビジョンテックが提供したユーザID、パスワードの入力が必要です。
3)取得したキーをファイル入出力するスクリプト
取得したキーをファイル入出力するスクリプトです。 ※当スクリプトではファイル出力を行っておりますが、トークンの盗難防止の為本来はデータベース等への保存を推奨しています。
FileController.php
<?php
class FileController{
private $token_file = "files/token.txt";
private $auth_file = "files/authkey.txt";
private $get_token_file = "WAGRI_checkAuth.php";
private $get_authkey_file = "checkAuth_token.php";
public function deleteToken(){
if($this->existsToken()){
unlink($this->token_file);
}
}
public function deleteAuthKey(){
if($this->existsAuthKey()){
unlink($this->auth_file);
}
}
public function existsToken(){
return file_exists($this->token_file);
}
public function execWAGRIGetToken(){
$cmd = "php " . $this->get_token_file;
system($cmd, $return_var);
return $return_var;
}
public function setToken($tokenObject){
if(empty($tokenObject) || empty($tokenObject->access_token)){
echo "Tokenの取得に失敗しました。\n";
return false;
}
return file_put_contents($this->token_file, $tokenObject->access_token);
}
public function getToken(){
if(!$this->existsToken()){
$result = $this->execWAGRIGetToken();
if($result !== 0){
echo "Tokenの取得に失敗しました。\n";
return false;
}
}
$token = file_get_contents($this->token_file);
if($token === false || empty($token)){
echo "Tokenの読み込みに失敗しました。\n";
$this->deleteToken();
return false;
}
return $token;
}
public function existsAuthKey(){
return file_exists($this->auth_file);
}
public function execGetAuthKey(){
$cmd = "php " . $this->get_authkey_file;
system($cmd, $return_var);
return $return_var;
}
public function setAuthKey($userid, $authObject){
if(empty($authObject) || $authObject->Result->ResultStatus->ErrCode != 0){
echo "AuthenticationKeyの取得に失敗しました。\n";
return false;
}
$content = array(
'userid' => $userid,
'authkey' => $authObject->Result->AuthenticationKey->Key,
);
return file_put_contents($this->auth_file, json_encode($content));
}
public function getAuthKey(){
if(!$this->existsAuthKey()){
$result = $this->execGetAuthKey();
if($result !== 0){
echo "AuthenticationKeyの取得に失敗しました。\n";
return false;
}
}
$authkeyjson = file_get_contents($this->auth_file);
if($authkeyjson === false || empty($authkeyjson)){
echo "AuthenticationKeyの読み込みに失敗しました。\n";
$this->deleteAuthKey();
return false;
}
$authkey = json_decode($authkeyjson, true);
if(empty($authkey['userid']) || empty($authkey['authkey'])){
echo "AuthenticationKeyの読み込みに失敗しました。\n";
$this->deleteAuthKey();
return false;
}
return $authkey;
}
}
?>
実行例:
$ php WAGRI_checkAuth.php $ php checkAuth_token.php

