Refresh Tokenを使用してBOXアクセストークンを生成したいと考えています。
更新トークンの有効期限が切れる前に定期的に実行したいと考えています。
Web アプリケーションにログインせずに自動化するにはどうすればよいですか。
Web サイトから、トークンを生成できます。しかし、トークンの有効期限が切れないように定期的にトークンを作成するジョブを自動化することを検討しています。何か案は?
Refresh Tokenを使用してBOXアクセストークンを生成したいと考えています。
更新トークンの有効期限が切れる前に定期的に実行したいと考えています。
Web アプリケーションにログインせずに自動化するにはどうすればよいですか。
Web サイトから、トークンを生成できます。しかし、トークンの有効期限が切れないように定期的にトークンを作成するジョブを自動化することを検討しています。何か案は?
アクセス トークン、更新トークン、およびアクセス トークンの生成日を格納するデータベースを作成します。
アプリケーションで作業するときは、データベース内の日付でアクセス トークンの有効期限が切れていないかどうかを確認してください。期限切れの場合は、リフレッシュ トークンを持つアクセス トークンを生成する関数を作成します。cUrl を使用してそのアクセス トークンを生成する V2 の方法は次のとおりです。
curl https://www.box.com/api/oauth2/token \
-d 'grant_type=refresh_token&refresh_token={valid refresh token}&client_id={your_client_id}&client_secret={your_client_secret}' \
-X POST
次のようなjson回答を返します。
{
"access_token": "T9cE5asGnuyYCCqIZFoWjFHvNbvVqHjl",
"expires_in": 3600,
"restricted_to": [],
"token_type": "bearer",
"refresh_token": "J7rxTiWOHMoSC1isKZKBZWizoRXjkQzig5C6jFgCVJ9bUnsUfGMinKBDLZWP9BgR"
}
元のチュートリアルのリンクは次のとおりです: http://developers.box.com/oauth/
cUrl と PHP を使用して新しいアクセス/リフレッシュ トークンを取得する例を次に示します。
function getAccessTokenByRefresh($refreshToken, $client_id, $client_secret){
$defaultOptions = array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_VERBOSE => true,
CURLOPT_HEADER => false,
CURLINFO_HEADER_OUT => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
);
$ch = curl_init('https://www.box.com/api/oauth2/token');
$options = $defaultOptions;
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = array(
'grant_type'=>'refresh_token',
'refresh_token'=>$refreshToken,
'client_id'=>$client_id,
'client_secret'=>$client_secret
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
新しいアクセス トークンを生成したら、それらをデータベースに保存し、さらに比較するためにアクセスを生成した時間を保存します。
一度認証して access_token を取得しますが、その後は crontab が 15 分ごとにトークンを更新します。PHP コードは次の場所にあります。
http://liljosh.com/upload-to-box-content-api-without-user-authentication/