我是新手,试图连接 Box 的 API v2。我成功地设置了一个 PHP 客户端库,感谢 developer.box.com/auth 上第一段中的链接。我已经完整阅读了 Box 的演练两次以上,以及关于此事的大约 100,000 个问题和回复。我的问题发生在用户重定向到 Box 的授权页面、输入他的凭据并单击“允许”后。结果根据我的 redirect_uri 和我放置 client_id 和 client_secret 的登录页面的 url 而有所不同: 1) 如果我的 redirect_uri 与我的https://mysite.com/login_with_box匹配,则用户显然会重定向到同一个 url ,然后将用户返回到 Box 的授权页面;和 2) 如果我的 redirect_uri 与https://mysite 不同。页面,然后用户成功返回到我的redirect_uri,其url包含30秒代码。我知道我已经接近解决这个问题,但不知道如何在 30 秒或更短的时间内将代码转换为令牌,并使用它来显示用户的文件夹、文件、信息或其他任何内容。非常感谢您的考虑。这是我的立场:
// mysite.com/client.php:
// ...
case 'Box':
$this->oauth_version = '2.0';
$this->request_token_url = '';
$this->dialog_url = 'https://api.box.com/oauth2/authorize?client_id={CLIENT_ID}&response_type=code&redirect_uri={REDIRECT_URI}&state={STATE}';
$this->append_state_to_redirect_uri = '';
$this->access_token_url = 'https://api.box.com/oauth2/token';
$this->authorization_header = true;
$this->url_parameters = false;
break;
// ...
// mysite.com/login_with_box.php:
// ...
$client->client_id = '[my_client_id]';
$client->client_secret = '[my_client_secret]';
if(($success = $client->Initialize())) {
if(($success = $client->Process())) {
if(strlen($client->access_token)) {
$success = $client->CallAPI(
'https://api.box.com/2.0/users/me',
'GET', array(), array('FailOnAccessError'=>true), $user);
}
}
$success = $client->Finalize($success);
}
// ...