我正在寻找使用刷新令牌生成 BOX 访问令牌。
我想在刷新令牌到期之前定期执行此操作。
如何在不登录 Web 应用程序的情况下实现自动化。
从网站上,我可以生成令牌。但我正在寻求自动化工作以定期创建令牌以避免令牌过期。有任何想法吗?
我正在寻找使用刷新令牌生成 BOX 访问令牌。
我想在刷新令牌到期之前定期执行此操作。
如何在不登录 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/