php สร้าง Google ชีตจากบัญชีบริการ
ฉันใช้บัญชีบริการเพื่ออ่านและอัปเดต Google ชีตที่มีอยู่ซึ่งแชร์กับบัญชีบริการ
ตอนนี้ฉันต้องการสร้าง Google ชีตใหม่โดยใช้บัญชีบริการ และ จากนั้นแชร์กับผู้ใช้ด้วยที่อยู่อีเมล หรืออย่างน้อยก็ให้ลิงก์ที่ผู้ใช้สามารถเปิดได้
ตัวอย่างทั้งหมดที่ฉันพบดูเหมือนจะต้องการให้ผู้ใช้ได้รับอนุญาต ไม่ใช่ทุกอย่างเพื่อ ทำได้โดยใช้บัญชีบริการ
Answer
วิธีแก้ไข:
ฉันเชื่อว่าเป้าหมายของคุณมีดังนี้
- คุณต้องการสร้างสเปรดชีต Google ใหม่และใช้ร่วมกับที่อยู่อีเมล
- คุณต้องการทำให้สำเร็จโดยใช้ PHP
แม้ว่า โชคไม่ดีที่ฉัน\ ไม่แน่ใจเกี่ยวกับสคริปต์ปัจจุบันของคุณจากคำถามของคุณ เมื่อคุณต้องการบรรลุสิ่งนี้โดยใช้ googleapis สำหรับ php สคริปต์ตัวอย่างต่อไปนี้เป็นอย่างไร
สคริปต์ตัวอย่าง:
$client = ###; // Please use your client from the service account.
$name = "sampe Spreadsheet name"; // Please set Spreasdheet name.
$email = "###"; // Please set email address you want to share.
$service = new Google_Service_Drive($client);
// 1. Create a new Spreadsheet.
$mimeType = "application/vnd.google-apps.spreadsheet";
$f = new Google_Service_Drive_DriveFile();
$f->setName($name);
$f->setMimeType($mimeType);
// $f->setParents(["###folderId###"]); // If you want to put the created Spreadsheet to the specific folder, please use this.
$spreadsheet = $service->files->create($f);
$spreadsheet_id = $spreadsheet->getId();
// 2. Share the created Spreadsheet with an email address.
$permission = new Google_Service_Drive_Permission();
$permission->setEmailAddress($email);
$permission->setType(\'user\');
$permission->setRole(\'writer\');
$service->permissions->create($spreadsheet_id, $permission);
// 3. Show URL of created Spreadsheet.
$spreadsheet_url = "https://docs.google.com/spreadsheets/d/" . $spreadsheet_id . "/edit";
print($spreadsheet_url);
เมื่อเรียกใช้สคริปต์นี้ จะมีการสร้างสเปรดชีตของ Google ใหม่ไปยังโฟลเดอร์รูท และสเปรดชีตที่สร้างขึ้นจะถูกแชร์กับที่อยู่อีเมลในรูปแบบ ตัวเขียน
ในกรณีนี้ ใช้ขอบเขตของ
Google_Service_Drive::DRIVE
เป็นตัวอย่าง
ข้อมูลอ้างอิง:
Source