2019/06/28 UPDATE 生育予測情報:AuthenticationKey?userid={userid}&password={password}

0 / 5 (0 レビュー)

ベンダー名:ビジョンテック

システム名:WAGRI情報処理システム

API

API名
生育予測情報
説明
本APIはビジョンテック提供の生育予測情報を取得する為のAPIです。 本APIの利用には、ビジョンテックとのライセンス契約が必要となります。 ライセンス契約につきましては、ビジョンテック(tec@vti.co.jp)にお問い合わせください。
依存設定
しない
カテゴリー
生育予測

メソッド

URL
AuthenticationKey?userid={userid}&password={password}
説明
本メソッドは、ビジョンテックが提供する公開APIを除く、APIを利用する前に認証キーを発行するメソッドです。 ビジョンテック提供のAPIを利用する際には、パラメータにユーザIDと認証キー(本メソッドで取得) を加えることで初めて利用可能となります。 認証キーの有効期間はリクエストしてから30分間とし、有効期間内に再リクエストされた場合は、 認証キーは上書きされ、その前のキーは無効となります。
HTTPメソッド
GET
認証方式
ベンダーシステム認証
レスポンス
ステータス 意味
400 Bad Request リクエストが不正です。
403 Forbidden リソースのアクセスが禁止されています。
500 Internal Server Error サーバー内部でエラーが発生しました。
401 Unauthorized 認証情報が不正です。

コード例

## 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 ```

URLデータ定義

認証キー発行
Name Description Type Additional information
userid ユーザーID string Required
password パスワード string Required

レスポンスデータ定義

Result
Name Description Type Additional information
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

レビュー

ここに掲載されている各コメントは、サービサー様のご意見・ご感想であり、WAGRIがその内容の正確性について保証するものではありません。
コメントを投稿する場合、WAGRIのアカウントで ここからサインイン してください。
レビューはありません。