着眼于自动化BOX访问令牌

时间:2013-09-02 11:41:52

标签: box-api

我希望使用Refresh Token生成BOX访问令牌。

我想在刷新令牌过期之前定期执行此操作。

如何在不登录Web应用程序的情况下实现自动化。

从网站上,我可以生成令牌。但我正在寻找自动化作业以永久创建令牌以避免令牌过期。 任何想法?

2 个答案:

答案 0 :(得分:0)

创建一个数据库,您可以在其中存储访问令牌,刷新令牌和访问令牌的生成日期。

在您的应用程序中工作时,如果您的访问令牌已过期,请检查数据库中的日期。如果已过期,请创建一个函数以生成具有刷新令牌的访问令牌。以下是使用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);
}

生成新的访问令牌后,将它们保存在数据库中,并节省生成访问权限的时间以进行进一步比较。

答案 1 :(得分:0)

您将进行一次身份验证以获取access_token,但之后crontab将每15分钟刷新一次令牌。 PHP代码位于:

http://liljosh.com/upload-to-box-content-api-without-user-authentication/

相关问题