phpでGoogleアナリティクスに.csvファイルをアップロードしようとしています。残念ながら、GoogleアナリティクスAPIはファイル名を保存する方法を提供していないため、代わりにcURLを使用してファイルをアップロードしようとしています。主にcURLコマンドをPHPコードに正しく変換する方法がわからないため、ひどく立ち往生しています。Googleアナリティクスアップロードファイル(cURL付き)
これは、それは私がしたい正確に何を意味し、正常にファイルをアップロードcurlコマンドで、hereが見つかりました:
curl -X POST -F "[email protected];type=application/octet-stream" "https://www.googleapis.com/upload/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDataSources/CUSTOMDATASOURCEID/uploads?access_token=ya29.REPLACEWIHTYOURVALIDTOKEN" -v
私は次の方法でPHPコードに上記のコマンドを翻訳しようとしましたが、無効なファイルがアップロードされているため(おそらく空ファイルですか?)、何か間違っています。
試み1:
$parameters = [
'upload' => '@/local/path/to/my/file/test2.csv;type=application/octet-stream',
];
$url = 'https://www.googleapis.com/upload/analytics/v3/management/accounts/' .
$account->code .
'/webproperties/' .
$property->code .
'/customDataSources/' .
$datasource->code .
'/uploads?access_token=' .
$this->client->getAccessToken()['access_token']
;
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($process, CURLOPT_HEADER, false);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_UPLOAD, true);
curl_setopt($process, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($process, CURLOPT_RETURNTRANSFER, true);
$return = curl_exec($process);
$httpcode = curl_getinfo($process, CURLINFO_HTTP_CODE);
curl_close($process);
// Runs, but the upload is invalid.
試み2
// Same as above, except the $parameters set like this
$parameters = [
'upload' => '@/local/path/to/my/file/test2.csv',
'type' => 'application/octet-stream',
];
試み3
// Same as above, except the $parameters set like this
$cfile = new \CURLFile('/local/path/to/my/file/test2.csv','application/octet-stream','upload');
$parameters = [
'upload' => $cfile,
'type' => 'application/octet-stream',
];
私は、私も今では覚えておくことができない他の多くの試みをしました。私はそれが動作するコマンドを既に持っているときにそれを働かせるのはとても難しいとは思っていません、そして、私が必要とするのは、それをコードに翻訳することです...誰かが私を助けてくれることを願っています。要するに
EDIT
、私はPHPのコードに、次のcurlコマンドを翻訳されて何をする必要があるか:
curl -X POST -F "[email protected];type=application/octet-stream" "https://www.googleapis.com/upload/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDataSources/CUSTOMDATASOURCEID/uploads?access_token=ya29.REPLACEWIHTYOURVALIDTOKEN"