PHPからDBX Platformを利用してDropbox内にディレクトリ(フォルダ)を作成する方法
PHPからDBX Platformを利用してDropbox内にディレクトリ(フォルダ)を作成したい。以下に実装方法をメモ。
Dropbox側の準備
Dropbox側の準備については以下過去記事を参考に「アプリの作成~リフレッシュトークンの取得」まで済ませておくこと。
https://taitan916.info/blog/archives/4694#Dropbox
実装方法
ソースコード
<?php
const APP_KEY = '【App key】';
const APP_SECRET = '【App secret】';
const REFRESH_TOKEN = '【リフレッシュトークン】';
// 一時的なアクセストークンを取得
function getAccessToken() {
$url = 'https://api.dropboxapi.com/oauth2/token';
$data = [
'grant_type' => 'refresh_token',
'refresh_token' => REFRESH_TOKEN,
'client_id' => APP_KEY,
'client_secret' => APP_SECRET
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$res = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$access_token = '';
if( !curl_errno($ch) && $http_code == "200" ){
$res = json_decode($res, true);
$access_token = $res['access_token'];
} else {
echo "ERROR: Failed to access Dropbox API : " . curl_error($ch) . "<br>";
}
curl_close($ch);
return $access_token;
}
function createDir($access_token, $path) {
$url = 'https://api.dropboxapi.com/2/files/create_folder_v2';
$headers = array(
'Authorization: Bearer ' . $access_token,
'Content-Type: application/json',
);
$param = array(
"path" => $path,
"autorename" => true
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($param),
CURLOPT_RETURNTRANSFER => true,
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$res = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (!curl_errno($ch) && $http_code == "200") {
$flg = true;
} else {
$flg = false;
}
curl_close($ch);
return $flg;
}
//一時的なアクセストークンを取得
$access_token = getAccessToken();
$path = '/test_dir';
$flg = createDir($access_token, $path);
if( $flg ){
echo 'success';
}else{
echo 'error';
}
ディレクトリについて
Dropbox側の準備で作成したディレクトリがルートディレクトリになり、その下の階層に作成される。
今回の場合だと「php_connection_test/test_dir」というディレクトリが作成される。
参考サイト
関連記事
-
-
PHPからDBX Platformを利用してサーバ内のファイルをアップロードする方法
PHPで何らかのファイルを保存するようなケースだと今まではローカルに保存する、も ...
-
-
PHPからDBX Platformを利用してDropbox内のファイルを削除する方法
以前にPHPからDropboxのファイル一覧のデータ(ファイル名や更新日時等)を ...
-
-
PHPからDBX Platformを利用してDropbox内のファイル一覧を取得する方法
以前にPHPからDropboxにファイルをアップロードするという記事を書いたが、 ...