2014-10-28 1 views
0

나는이 SO 읽고 : How upload to MY Google Drive account, not the users이 사이트는, 등록 된 사용자 또는 드라이브 내 구글에 파일을 업로드 할 annoymous 사용자의 허용 할 수 있나요

내가 따라서 서비스를 사용하지 않기로 결정하지만 나는 그것의 가능한 발견 대신 내 Google 계정의 드라이브 공간을 사용하십시오.

그러나이를 달성하기위한 정확한 단계를 이해하는 데 어려움이 있음을 발견했습니다. OAuth2.0, 드라이브 API 및 Google에서 크로스 샘플을 읽었습니다.

하지만 사용자가 Google+에 로그인했을 때 대신 내 드라이브에 업로드하는 방법을 알지 못하면 드라이브가 자신의 드라이브에 업로드됩니다.

등록 된 사용자로부터 드라이브 API가있는 MY google 드라이브로 업로드 파일을 얻는 데 필요한 정확한 지식과 단계 및 구현 방법을 알고 있는지 궁금합니다. 나는 PHP를 bakend로, AngularJS를 프론트 엔드로 사용하고 있습니다. 그래서, 방법이나 기존 lib (Drive의 doc을 제외하고는이 문서에서 찾을 수없는)로 더 쉽게 만들 수 있다면, 이상적이지만, 빌드하는 단계도 훌륭합니다.

자세한 내용은 상단에있는 게시물에서 "do a one-off auth to get a refresh token, which you will store. You can then use this any time to generate the access token needed to invoke the actual Drive API. You can generate the refresh token using the Oauth Playground, so no need to write any code."의 두 번째 대답의 구문을 사용하여 실제로이를 달성하기 위해 사용해야하는 단계와 관련된 단계를 명확히 알 수 없습니다.

이 토큰이 생성에서 몇 순간에 만료, 당신은 드라이브 사용자의 스토리지를 사용하는 액세스 토큰이 필요합니다, 당신은

+1

클라이언트에서이 작업을 완전히 수행 할 수없는 경우 사용자가 서버에 업로드하여 서버에 업로드하면 Google 드라이브에 업로드 할 수 있습니다. PHP API https://developers.google가있는 것 같습니다.com/drive/web/examples/php – Popnoodles

+0

@Popnoodles 공유 호스팅 서버가이를 수행 할 수 있다고 생각하십니까? 그렇지 않다면 이유를 말씀해 주시겠습니까? 감사! – Ezeewei

+0

@Popnoodles가 맞다고 생각합니다. 예, 공유 호스팅 서버를 통해 가능해야합니다. –

답변

1

Google 드라이브에 파일을 보내려면 감사드립니다.

액세스 토큰을 만들려면 새로 고침 토큰이 필요합니다.이 토큰은 만료되지 않습니다. 이것은 이것을하는 열쇠입니다. 추가 정보를 따라

https://github.com/numsu/google-drive-sdk-api-php-insert-file-parent-example 

설정 그것을 :

다음은 PHP API를 사용하여 간단한 파일 업로드 예이다.

어디서나 파일을 하나의 드라이브로 전송하도록 코드를 편집하려면 대상 드라이브의 새로 고침 토큰 (이 경우에는 내 자신의 드라이브)을 가져와야합니다. 서비스에 로그인하고 Google 동의 화면에서 권한을 부여하면됩니다. 그것은 $_SESSION["credentials"]에 저장됩니다. var_dump()을 실행하고 새로 고침 토큰을 액세스 할 수있는 파일 또는 데이터베이스의 어딘가에 저장하십시오.

이제 oAuth를 사용하여 로그인 한 사용자를 가리키는 항목을 제거 할 수 있습니다. 필요하지 않습니다.

다음 새로 고침 토큰이있는 액세스 토큰을 가져와야합니다.

$file = new Google_Service_Drive_DriveFile(); 
$file->setTitle($title); 
$file->setMimeType($mimeType); 

$data = file_get_contents($filename); 
$createdFile = $service->files->insert($file, array(
     'data' => $data, 
     'mimeType' => $mimeType, 
     )); 

: 파일을 업로드 그 후 $service = new Google_Service_Drive($client);

: 당신은 구글 API 함수 $client->refreshToken($refreshToken);

다음으로 할 수있는이 그냥 $client 변수를 사용하여 새 드라이브 서비스 클래스를 생성해야 행운을 빕니다!

+0

와우! 고마워요! 너는 이것에 큰 쏜다. 고마워, 나는 이것의 시도를 확실히 할 것이다 : D – Ezeewei

관련 문제