Skip to content
[Docs]스프레드시트
2015.07.09 07:58

구글드라이브 API

조회 수 4545 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

크롬 확장프로그램에서 구글 드라이브 연동 예제

구글 드라이브 메뉴얼


api 획득


Google Drive API key 생성 과정


API 기능을 활용하려면 아래와 4개를 생성해야 한다.


1. p12key 파일

2. Client ID

3. Email address

4. Pulic key fingerprints


로그인 후 https://console.developers.google.com/project 로 접속한 후

만들어진 프로젝트설정에서 Drive API ON 하고 Credentials(인증)설정에서 Client ID를 생성한다.


1.png


API Project 를 클릭한 뒤 사용자 인증정보를 들어가면 Client ID 등의 정보가 나옴.



링크는 카메라를 찍어서 구글드라이브에 저장해주는 예제입니다.

saveFileToDrive() 부분이 파일 저장하는 부분이며, 
제가 알기로는 startcameraintent로부터 카메라를 찍어서 저장한 파일을
saveFileToDrive()에서  읽어와서 file = service.files~~~~ 부분에서 업로드 시키는 것입니다.

답변 :

 구글 드라이브 API를 기존에 써본적은 없었는데 질문내용에 흥미가 생겨

developer 싸이트 예제를 그대로 따라해본 뒤에 text 파일만 올리는걸로 바꿔봤습니다.
테스트 결과 잘되네요. 외장메모리에 andlog.txt 파일을 올리는 예제입니다.

public class MainActivity extends Activity {

static final int REQUEST_ACCOUNT_PICKER = 1;
static final int REQUEST_AUTHORIZATION = 2;

private static Uri fileUri;
private static Drive service;
private GoogleAccountCredential credential;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

credential = GoogleAccountCredential.usingOAuth2(this,
DriveScopes.DRIVE);
startActivityForResult(credential.newChooseAccountIntent(),
REQUEST_ACCOUNT_PICKER);
}

@Override
protected void onActivityResult(final int requestCode,
final int resultCode, final Intent data) {
switch (requestCode) {
case REQUEST_ACCOUNT_PICKER:
if (resultCode == RESULT_OK && data != null
&& data.getExtras() != null) {
String accountName = data
.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
if (accountName != null) {
credential.setSelectedAccountName(accountName);
service = getDriveService(credential);
setFileUri();
}
}
break;
case REQUEST_AUTHORIZATION:
if (resultCode == Activity.RESULT_OK) {
saveFileToDrive();
} else {
startActivityForResult(credential.newChooseAccountIntent(),
REQUEST_ACCOUNT_PICKER);
}
break;
}
}

private void setFileUri() {
String mediaStorageDir = Environment.getExternalStorageDirectory().getPath();
fileUri = Uri.fromFile(new java.io.File(mediaStorageDir
+ java.io.File.separator + "andlog.txt"));
saveFileToDrive();
}

private void saveFileToDrive() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
// File's binary content
java.io.File fileContent = new java.io.File(fileUri
.getPath());
FileContent mediaContent = new FileContent("text/plain",
fileContent);

// File's metadata.
File body = new File();
body.setTitle(fileContent.getName());
body.setMimeType("text/plain");

File file = service.files().insert(body, mediaContent)
.execute();
if (file != null) {
showToast("text file uploaded: " + file.getTitle());
}
} catch (UserRecoverableAuthIOException e) {
startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch (IOException e) {
e.printStackTrace();
}
}
});
t.start();
}

private Drive getDriveService(GoogleAccountCredential credential) {
return new Drive.Builder(AndroidHttp.newCompatibleTransport(),
new GsonFactory(), credential).build();
}

public void showToast(final String toast) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), toast,
Toast.LENGTH_SHORT).show();
}
});
}
}





https://drive.google.com/folderview?id=xxxxxx&usp=sharing


https://drive.google.com/drive/folders/xxxxxxx



https://googledrive.com/host/xxxxx/index.html

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
717 Server XE file cache 활용 2016.08.19 1648
716 Server 아파치 mod_cache mod_disk_cache 알아보기 7 2016.08.18 3096
715 컴퓨터잡담 MP3 소리 크기 조절 프로그램 file 2016.08.14 3645
714 Server XE 반응형 모바일 메타태그 삽입하기 2016.08.14 3687
713 [Docs]스프레드시트 구글 스프레드시트 설문지 내맘대로 수정하기 file 2016.08.13 11630
712 [Docs]스프레드시트 스프레드시트 api append & update php 셀 내용 수정 4 2016.08.08 5314
711 [Docs]스프레드시트 Google SpeadSheet 조건에 맞는 데이터만 참조하여 가져오기(importrange, Query) 1 file 2016.08.06 12943
710 [Docs]스프레드시트 구글 드라이브에서 다른 파일 데이터 참조하기 file 2016.08.06 6344
709 Server mysql 16CPU / 16GB My.cnf 1 2016.07.26 2501
708 WindowsTip 도스에서 텍스트 파일 치환 2016.07.19 4626
707 Server mysql 테이블 손상시 #1146 - Table 해결방법 file 2016.07.17 8905
706 Server xe 타이틀 게시판 이름 없애기 file 2016.06.28 1803
705 [Docs]스프레드시트 스프레드 웹게시로 불러오기 1 2016.06.24 4725
704 Server 서버 부하상태 체크 file 2016.04.30 1709
703 Server XE Content font-size:수정방법 file 2016.04.19 1864
702 Server XE <title>제목 - 사이트명</title> 으로 변경방법 2016.04.19 2055
701 Server XE 리퍼러 모듈로 트래픽 발생에 대처방법 file 2016.04.17 1409
700 Server ECS P43T-AD3, Asus C381GM, Driver(두번째 사용했던 서버 드라이버) file 2016.04.12 2804
699 Server XE 스케치북 모바일 비회원 댓글쓰기에서 홈페이지 이메일 기입란 삭제하기 2016.04.08 2979
698 Server XE 어느날 갑자기 다운로드가 되지 않을때 해결방법 file 2016.04.07 1351
Board Pagination Prev 1 ... 9 10 11 12 13 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소