【php】DropboxのAPIをphpから使う
問題
DropboxのAPIをphpから使いたいです。
答え
file_get_contents関数でさくっと対応する例。
オフラインアクセスができるAPIキー(リフレッシュトークン)、アクセストークンは取得しているものとする。
/oauth2/token で、リフレッシュトークンからアクセストークンを再取得する
$data = http_build_query(array( 'grant_type' => 'refresh_token', 'refresh_token' => 'リフレッシュトークンは取得済みとする', ), '', '&'); $options = array( 'http' => array( 'ignore_errors' => true, 'method' => 'POST', 'header' => array( 'Content-type: application/x-www-form-urlencoded', 'Authorization: Basic ' . base64_encode(DROPBOX_APP_KEY . ':' . DROPBOX_APP_SECRET), ), 'content' => $data, ), ); $context = stream_context_create($options); $response = json_decode(file_get_contents('https://api.dropbox.com/oauth2/token', false, $context)); //取得したかったアクセストークンはこちら $access_token = $response->access_token;
/files/upload でファイルをアップロードする例
$access_token = 'アクセストークンは取得済みとする'; $pdf = file_get_contents('/PDFファイルの内容を/アップロードする場合.pdf'); $arg = json_encode(array( "autorename" => false, "mode" => "add", "mute" => false, "path" => "/hogehoge/fugafuga.pdf", "strict_conflict" => false, )); $options = array( 'http' => array( 'ignore_errors' => true, 'method' => 'POST', 'header' => array( 'Authorization: Bearer ' . $access_token, 'Dropbox-API-Arg: ' . $arg, 'Content-type: application/octet-stream', ), 'content' => $pdf, ), ); $context = stream_context_create($options); $response = json_decode(file_get_contents('https://content.dropboxapi.com/2/files/upload', false, $context));
/sharing/create_shared_link_with_settings でファイルの共有リンクを取得する例
$arg = array( "path" => 'ファイルのIDかファイルのパス', ); $options = array( 'http' => array( 'ignore_errors' => true, 'method' => 'POST', 'header' => array( 'Authorization: Bearer ' . $access_token, 'Content-type: application/json', ), 'content' => json_encode($arg), ), ); $context = stream_context_create($options); $response = json_decode(file_get_contents('https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings', false, $context)); // 取得したかったURLはこちら $url = $response->url;
コメント