Tôi muốn sử dụng Google Drive để hoạt động như một CMS bán cho một trang web mà tôi đang thực hiện để chủ sở hữu nội dung có thể chỉnh sửa nội dung của họ bằng Google Drive. Tôi muốn sử dụng tài khoản người dùng cụ thể có quyền truy cập vào Google Drive (bằng cách viết bài đăng này, tài khoản dịch vụ KHÔNG có quyền truy cập trực tiếp vào Google Drive) và có thể chia sẻ tài liệu với chủ sở hữu nội dung.Làm cách nào để cấp quyền truy cập tài khoản dịch vụ Google Drive cho tài khoản Google mà không cần sử dụng các ứng dụng của Google?
Sau khi đọc qua các API và hướng dẫn, tôi đã tìm thấy câu trả lời trong đoàn: https://developers.google.com/drive/delegation
vấn đề chính của tôi với quá trình này là các trang web không được quản lý bởi Google Apps và do đó các bước được nêu trong 'Delegate miền toàn quyền cho tài khoản dịch vụ của bạn 'gây nhầm lẫn cho tôi - có vẻ như có thể xử lý ủy quyền này mà không sử dụng Google Apps, nhưng sau khi tìm kiếm thông qua cài đặt trong Google Drive cho tài khoản người dùng cụ thể của tôi, tôi dường như không thể tìm thấy khả năng ủy quyền mạo danh.
Một đoạn mã Tôi đang sử dụng:
static public function getService() {
$key = file_get_contents(GOOGLEAPI_KEYFILE);
$auth = new Google_AssertionCredentials(GOOGLEAPI_SERVICE_EMAIL, array(GOOGLEAPI_SCOPE), $key);
$auth->setPrn(GOOGLEAPI_IMPERSONATION);
self::$apiClient = new Google_Client();
self::$apiClient->setUseObjects(true);
self::$apiClient->setAssertionCredentials($auth);
return new Google_DriveService(self::$apiClient);
}
GOOGLEAPI_IMPERSONATION
là tài khoản người dùng cụ thể và khi tôi chạy mã này, các quốc gia ngoại lệ:
Lỗi khi làm mới token OAuth2, message: '{"error": "access_denied"}
Bất cứ ai cũng có bất kỳ trợ giúp nào? Tôi có hiểu lầm một khái niệm cơ bản về cách oAuth hoạt động theo phái đoàn không?
Steve, cảm ơn phản hồi. Tôi đã sử dụng thành công tài khoản dịch vụ để tải lên và đọc tài liệu mà không gặp bất kỳ sự cố nào. Tuy nhiên, không có quyền truy cập vào tài liệu được tải lên thông qua giao diện người dùng web của Google Documents, đây là yêu cầu. Ngoài ra, lý do tại sao oAuth của người dùng không hoạt động là vì tôi chỉ muốn sử dụng tài khoản dịch vụ Google Tài liệu làm nhóm chứa tài liệu được sử dụng để điền nội dung trên trang web - vì vậy nếu người dùng Google truy cập trang web, có không cần cho họ để oAuth tài khoản của họ hoặc bất cứ điều gì. –
Sửa các tài khoản dịch vụ không có quyền truy cập vào giao diện người dùng web. Nếu đó là một yêu cầu bạn có một vài lựa chọn. Đầu tiên là chỉ cần chia sẻ tài liệu với những người dùng cần có khả năng truy cập chúng. Tất cả những gì cần là biết địa chỉ email của họ.Cách khác, bạn có thể đi theo hướng khác và tạo tài liệu trong các tài khoản khác rồi chia sẻ với tài khoản dịch vụ. Cuối cùng, nếu chỉ có một tài khoản duy nhất cần quyền truy cập, hãy ủy quyền sử dụng oauth bình thường với quyền truy cập ngoại tuyến và cho phép ứng dụng hành động thay mặt cho người dùng đó. –
Cảm ơn Steve - Tôi sẽ xem xét kỹ hơn khi tôi quay lại dự án này –