ファイルを Google ドライブにアップロードするときに問題が発生しましたが、その方法がわかりません。ファイルを正常に取得できますが、アップロードできません。
ここに私が持っているエラーがあります:
{ "error":
{ "errors":
[ { "domain": "global", "reason": "authError", "message": "Invalid Credentials", "locationType": "header", "location": "Authorization" } ],
"code": 401, "message": "Invalid Credentials"
}
}
ただし、アプリケーションをドライブ SDK に登録しており、ドライブ SDK クライアント ID を使用しています。また、トークンはドライブからファイルを取得するときに機能するため、有効です。
コードは次のとおりです。
function create_file($token){
$file = file_get_contents("mynewsuper.txt");
$length = strlen($file);
$url="https://www.googleapis.com/upload/drive/v2/files";
$header = array(
"Host: www.googleapis.com",
"Authorization:Oauth $token");
$ch = curl_init();
$post = array(
"file"=>"@mynewsuper.txt",
);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,false);
curl_setopt ($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
$data = curl_exec($ch);
echo $data;
}