diff --git a/index.php b/index.php index 6d23940..dfb3fed 100644 --- a/index.php +++ b/index.php @@ -5,21 +5,17 @@ if (!isset($_SESSION['token'])) { header('Location: /oauth.php'); } -define('BASE_URL', 'https://cloud.memsource.com/web'); +define('BASE_URL', parse_ini_file('config.ini')['base_url']); -print_r(listProjects()); die(); -// print_r(getProject('dOVoecVbGYq85VwGYkJgY0')); die(); +// print_r(listProjects()); die(); +print_r(getProject('dOVoecVbGYq85VwGYkJgY0')); die(); +// print_r(listJobs('dOVoecVbGYq85VwGYkJgY0')); die(); +downloadBilingualFiles('dOVoecVbGYq85VwGYkJgY0', ['tRJYN7LHPmaS8BVL3Vx8p2', 'DJbSRDTC7Jo004AvIb1V1M'], 'download.mxliff'); +die(); $resource = getResource($_SESSION['token']); print_r($resource); die(); -echo "
\nuserName: {$resource['user']['userName']}"; -echo "
\nName: {$resource['user']['firstName']}"; -echo "
\nLast name: {$resource['user']['lastName']}"; -echo "
\nEmail: {$resource['user']['email']}"; -echo "
\nEdition: {$resource['edition']['name']}"; -echo "
\nOrganization: {$resource['organization']['name']}"; - function listProjects() { $url = '/api2/v1/projects'; @@ -41,22 +37,31 @@ function listProjects() function getProject(string $projectUid) { - $url = '/api2/v1/projects/'.$projectUid; + $url = '/api2/v1/projects/' . $projectUid; return apiGet($_SESSION['token'], $url); } function listJobs(string $projectUid) { - $url = '/api2/v1/projects/'.$projectUid.'/jobs/'; + $url = '/api2/v1/projects/' . $projectUid . '/jobs/'; return apiGet($_SESSION['token'], $url); } +function downloadBilingualFiles(string $projectUid, array $jobsUid, string $filename) +{ + $url = '/api2/v1/projects/'.$projectUid.'/jobs/bilingualFile?format=MXLF'; + foreach ($jobsUid as $key => $jobUid) { + $postFields[] = ['uid' => $jobUid]; + } + return apiDownloadFile($_SESSION['token'], $url, ['jobs' => $postFields], $filename); +} + // we can now use the access_token as much as we want to access protected resources function apiGet(string $access_token, string $url) { $curl = curl_init(); curl_setopt_array( - $curl, + $curl, [ CURLOPT_URL => BASE_URL . $url, CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}"], @@ -69,46 +74,44 @@ function apiGet(string $access_token, string $url) return json_decode($response, true); } -function apiJsonPost(string $access_token, string $url, array $postFields) +function apiJsonPost(string $access_token, string $url, array $postFields, array $extraHeader = []) { + $header = array_merge( + ["Authorization: Bearer {$access_token}", 'Content-type: application/json'], + $extraHeader + ); $curl = curl_init(); - curl_setopt_array($curl, [ - CURLOPT_URL => BASE_URL . $url, - CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}", "Content-type: application/json"], - CURLOPT_SSL_VERIFYPEER => false, - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => json_encode($postFields), - CURLOPT_RETURNTRANSFER => true - ]); + curl_setopt_array( + $curl, + [ + CURLOPT_URL => BASE_URL . $url, + CURLOPT_HTTPHEADER => $header, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => json_encode($postFields), + CURLOPT_RETURNTRANSFER => true + ] + ); $response = curl_exec($curl); curl_close($curl); return json_decode($response, true); } -function getResource($access_token) +function apiDownloadFile($access_token, string $url, array $postFields, string $filename) { - //$test_api_url = 'https://cloud.memsource.com/web/api2/v1/auth/whoAmI'; - //$test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects'; - // $test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects/dOVoecVbGYq85VwGYkJgY0'; - // $test_api_url = 'https://cloud.memsource.com/web/api2/v2/projects/dOVoecVbGYq85VwGYkJgY0/jobs'; - $test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects/dOVoecVbGYq85VwGYkJgY0/jobs/bilingualFile'; - $array_content = ['jobs' => [['uid' => 'tRJYN7LHPmaS8BVL3Vx8p2']]]; - $content = json_encode($array_content); - - $header = ["Authorization: Bearer {$access_token}", "Content-type: application/json"]; - + $file = fopen($filename, 'w+'); $curl = curl_init(); curl_setopt_array($curl, [ - CURLOPT_URL => $test_api_url, - CURLOPT_HTTPHEADER => $header, + CURLOPT_URL => BASE_URL . $url, + CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}", 'Content-type: application/json'], CURLOPT_SSL_VERIFYPEER => false, - // CURLOPT_CUSTOMREQUEST => 'DELETE', // <-- This is how to send a DELETE request + CURLOPT_TIMEOUT => 500, + CURLOPT_FILE => $file, + CURLOPT_FOLLOWLOCATION => true, CURLOPT_POST => true, - CURLOPT_POSTFIELDS => $content, - CURLOPT_RETURNTRANSFER => true + CURLOPT_POSTFIELDS => json_encode($postFields) ]); $response = curl_exec($curl); curl_close($curl); - - return json_decode($response, true); + return $response; } \ No newline at end of file diff --git a/oauth.php b/oauth.php index 0b26468..a2f015f 100644 --- a/oauth.php +++ b/oauth.php @@ -1,9 +1,9 @@ here, copy the code, and paste it into the box below.

"; } @@ -61,14 +58,9 @@ function getAccessToken($authorization_code) curl_close($curl); if ($response === false) { - echo 'Failed'; - echo curl_error($curl); - echo 'Failed'; + echo 'Failed', curl_error($curl); } elseif (isset($objectResponse->error)) { - echo 'Error:
'; - echo $authorization_code; - echo $response; + echo "Error:
$authorization_code $response"; } - return $objectResponse->access_token; }