2019년 9월 2일 월요일

Python을 이용한 Google Calendar Event 추가

Google App 중에 Gmail 다음으로 누구나 사용하고 활용도가 높은 App은 Calendar입니다.
Google Calendar도 Cloud Id 에 소유가 되며, 다음과 같은 Concept으로 공유 및 사용할 수 있습니다.
[그림] 소유자와 캘린더, 이벤트 Concept

이벤트에는 이벤트의 기본 복사본이 포함 된 캘린더 인 단일 주최자가 있습니다. 이벤트에는 여러 참석자가있을 수도 있습니다. 참석자는 일반적으로 초대 된 사용자의 기본 일정입니다.  다음 다이어그램은 캘린더, 이벤트 및 기타 관련 요소 간의 개념적 관계를 보여줍니다.

[그림] Calendar와 Event와의 다이어그램

Google Calendar API를 이용하면 쉽게 Calendar에 Event를 추가할 수 있습니다.


▶ Google API Client : https://github.com/googleapis/google-api-python-client

해당코드

Python 코드는 다음과 같이 간단하게 사용할 수 있습니다.
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/calendar'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
CAL = build('calendar', 'v3', http=creds.authorize(Http()))

TIMEZONE = 'America/Los_Angeles'
EVENT = {
    'start':  {'dateTime': '2017-07-01T19:00:00', 'timeZone': TIMEZONE},
    'end':    {'dateTime': '2017-07-01T22:00:00', 'timeZone': TIMEZONE},
    'recurrence': ['RRULE:FREQ=MONTHLY;INTERVAL=2;UNTIL=20171231']
}
EVENT_ID = YOUR_EVENT_ID_STR_HERE
e = GCAL.events().patch(calendarId='primary', eventId=EVENT_ID,
        sendNotifications=True, body=EVENT).execute()

print('''\
*** %r event (ID: %s) modified:
    Start: %s
    End:   %s
    Recurring (rule): %s
''' % (e['summary'].encode('utf-8'), e['id'], e['start']['dateTime'],
        e['end']['dateTime'], e['recurrence'][0]))




API Explorer


코드나 OAuth2.0 없이 간단하게 테스트할 수 있도록 Google에서는 API Explorer를 제공합니다.
Event Insert : https://developers.google.com/calendar/v3/reference/events/insert


Google G Suite my Data 이용방법

Google G Suite Document, Calendar, Gmail 등의 데이터는 다양한 방법으로 이용할 수 있습니다.

2019년 9월 1일 일요일

Spreadsheet 사용자 연락처를 리멤버 App으로 자동 등록하기

고등학교 도서부 총무를 20년 넘게 맡고 있습니다. 총무를 후배들에게 몇 번 떠밀다 싶이하며 넘겼는데 다시 돌아오기를 2번 이제는 천생 총무직이 운명인가하고 도서부 총무를 계속 하고 있습니다. 매년 후배들이 졸업하면 연락처를 Google 주소록에 등록해서 스마트폰에 연동하고 페이스북이나 카톡 등도 자동 연동되도록 관리를 하고 있습니다.


Google 주소록에 등록해서 스마트폰에 동기화해서 사용하면 스마트폰을 분실하더라도 원래의 전화번호는 모두 Google 주소록에 있기 때문에 안전하고 스마트폰이나 주소록에서 동기화하거나 추가하면 모두 반영이 되어서 관리하기가 편합니다.

하지만 최근에는 명함도 직접 입력하지 않고 명함앱을 사용하는데 사서 선생님한테 받은 졸업생 연락처를 앉아서 Google 주소록에 등록하는게 그렇게 즐겁지는 않아서 약간의 잔꾀로 최근 사용하는 명함앱 리멤법 앱(https://rememberapp.co.kr)을 사용하기로 생각했다. 다른 앱과 차별화되어 사람이 직접 입력하기에 내 마음을 이해할거라는 생각과 함께 먼저 다른 사람의 스마트폰의 주소록을 찍었더니 입력된 경험이 있어 나름 기대를 하고 Spreadshet를 찍어서 등록을 요청했다.

[사진] 다른 사람 주소록을 찍어서 리멤버에 등록했던 연락처

하디만, Spreadsheet는 명함형식이 아니라고 해서 단호하게 거절을 당했습니다. 그렇다고 다시 입력하기에도 귀찮고...


그래서 아이디어를 낸 것은 어차피 Google Spreadsheet에 저장이 되어 있으니 Google App Script를 이용하여 Google Slide로 명함처럼 만들어서 그것을 찍어서 주소를 등록하기로 하고 일단은 비슷한 3rd Party 앱을 조사를 했습니다.

다행스럽게 Slider Creator라는 Sheets Add-on 제품이 하려고하는 내용과 비슷한거 같아서 테스틀 진행했습니다. 이 제품은 유료제품이지만 개인계정인 gmail.com에 한해서는 제한을 두고 무료로 사용할 수 있는 제품입니다. https://chrome.google.com/webstore/detail/slides-creator/onellggofcnbifboccdinddamiifjcob


사용법은 간단해서 데이타를 연결한 Slide 템플릿만 세팅하고 Slide 템플릿에서 Spreadsheet의 첫행의 값만 받으면 바로 연결이 됩니다.


[그림] 템플릿 연결

이렇게 간단하게 만들고 'Merge all rows' 실행을 하면 App Script가 실행되며 새로운 구글 Slide가 만들어집니다. 물론 OAuth 인증을 했기 때문에 내 드라이브에 정의된 형식으로 만들어집니다. 이렇게 해서 만들어진 명함형태의 Google Slide는 다음과 같이 생성되었습니다.


이것을 명함앱 리멤버로 사진을 찍으니 당연히 등록이 됩니다. 등록이 되어 자동으로 구글 주소록과 연동이 되어 스마트폰에도 동기화가 되었습니다. 당연히 카톡 친구가 먼저 올라옵니다.


어떻게 보면 졸업생 수가 작기 때문에 돌아서 등록한 것보다 직접 등록을 했으면 벌써 끝났겠지만, 데이타가 100개, 1000개 였다면 이 방법이 더 빠른 방법이 될겁니다. 약간의 생각만 다르게 하면 간단하게 끝날 수 있는 업무들이 우리 주위에는 많습니다.

2019년 8월 28일 수요일

[Update] G Suite Admin이 사용자 복구정보 조회 및 수정 기능

출처 : https://gsuiteupdates.googleblog.com/2019/08/admins-can-edit-user-recovery-security-details.html

▶ Google G Suite 관리자 매뉴얼 : https://goo.gl/zsNdTX
Google G Suite 관리자 매뉴얼(CSC-M16) 업데이트

G Suite 관리자는 이제 백업 이메일 주소 및 연결된 전화 번호와 같은 사용자의 복구 정보를 보고 편집 할 수 있습니다. 또한 이 정보를 사용하여 로그인 요청을 확인하고 계정 보안을 강화합니다. 사용자에게 정확하고 최신 정보를 제공함으로써 계정 보안을 강화할 수 있습니다.

관리자에게 이 정보를 보고 편집 할 수있는 권한을 부여하면 더 많은 계정에 최신 복구 정보가 있는지 확인하고 G Suite 계정에 연결된 복구 정보의 정확성을 높일 수 있습니다.
  • 잠긴 경우 사용자가 자신의 계정에 쉽게 액세스 할 수 있도록 합니다.
  • 악의적 인 행위자를 차단하는 데 도움이되는 의심스러운 로그인 시도에 대한 도전과 식별을 증가시킵니다.
  • 관리자는 자신의 계정이 잠겨있는 사용자에게 직접 지원을 제공 할 수 있습니다.

사용방법

  1. 개별 사용자 계정 : 관리 콘솔> 사용자> 개별 사용자> 보안> 복구 정보> 편집으로 이동. 개별 사용자 복구 정보를 직접 편집 할 수 있습니다.
  2. CSV (대량 사용자 업로드 도구) : 관리 콘솔> 사용자에서 대량 업로드 도구를 사용하여 일괄 업데이트
  3. API : Admin SDK Directory API를 사용




2019년 8월 24일 토요일

[Update] 구글 포토의 글자 OCR 기능

▶ 구글 포토 관련자료 : https://cloudservicecody.blogspot.com/2019/08/blog-post.html

구글 렌즈에 있던 글자 OCR(글자인식) 기능을 구글 포토에서도 제공합니다. 이 기능을 이용하면 다음과 같은 내용을 편리하게 할 수 있습니다.

1. 글씨가 작아서 안보일때
2. 포스터에 링크를 스마트폰에 입력하기 귀찮을때
3. 칠판에 많은 글씨를 메모해야 할 때
4. 외국에 가서 메뉴판 읽을 때
5. 책 보다가 좋은 내용 메모하고 싶을때

재미있거나 좋은 활용방법 댓글로 알려주세요


[콘텐츠] 구글 포토 관련자료

구글 포토는 사진 및 동영상을 저장, 검색, 관리할 수 있는 기능을 제공하는 구글의 사진관리 서비스입니다. 구글 포토는 다음과 같은 특징을 가지고 있습니다.

Google Photo : https://photo.google.com

  • 무제한용량 지원 : 고품질 압축으로 무제한 저장
  • 사진 검색기능 : 인물 및 사물인식으로 검색기능
  • 앨범 기능 : 앨범을 만들어서 관리기능
  • 어시스턴트 기능 : 다양한 사진의 콘텐츠 생성기능
  • 동기화 기능 : 스마트폰과 구글 포토 자동 동기화 기능
  • 공유기능 : 사진 및 앨범을 외부와 공유

관련자료

▶ 19.08.25 [Update] 구글 포토의 글자 OCR 기능

▶ 19.07.19 구글 포토와 드라이브 동기화 중지(2019.07.10) 

▶ 19.07.08 Google 포토(photo)에서 파일 이름으로 검색하기

▶ 18.03.28 구글 포토를 이용하여 행사사진 업로드하고 사진 공유하기

▶ 18.03.02 스마트폰 사진 Wifi에서 구글 포토로 자동으로 사진 올리기

▶ 16.11.16 출력된 사진을 구글 사진스캐너로 구글 포토에 저장하기

▶ 16.01.05 [활용기] 핸드폰 문자메세지 간편하게 보관하기 - 구글 드라이브

[Update] Google Drive 상위노출(Priority page) G Suite 모든 edition에서 사용가능

출처 : https://gsuiteupdates.googleblog.com/2019/08/priority-page-in-drive-now-available.html

※구글 드라이브에서는 '우선순위' 로 표시됨

▶ 구글 드라이브 매뉴얼 : https://goo.gl/eYBX47
▶ Google 드라이브 매뉴얼(CSC-M04) 업데이트

▶ Google Drive 상위노출(Priority)와 작업공간(Workspace)

기업에 문서가 많아서 ECM(Enterprise Content Management System) 이나 문서중앙화 솔루션을 도입하여 체계적으로 문서를 관리합니다. 하지만, On-Premise 의 한계로 문서는 많아지지만 효율적인 관리가 점점 어려워지고 있습니다. Cloud 환경의 Google의 Drive는 이런 On-Premise 솔루션들의 한계를 극복할 수 있도록, AI 기술을 적용하여 사용자가 원한는 문서를 쉽게 찾고 작업할 수 있는 환경을 제공해줍니다.

기존의 Drive에서 제공하던 방식은 다음과 같습니다.

  • 내 드라이브 : 내 소유의 드라이브
  • 공유 드라이브 : 팀이나 특정 목적을 위해서 만든 드라이브
  • 공유 문서함 : 다른 사람이 나에게 공유한 문서
  • 최근 문서함 : 최근 작업했던 문서
  • 중요 : 자주 사용하는 문서에 중요표시를 하여 빠르게 접근하는 문서
  • 휴지통 : 삭제한 문서


Google Drive에 문서를 저장하고 구글문서로 실제로 업무를 하는 입장에서 위의 6가지로도 충분히 업무를 할 수 있고 Google의 강력한 검색기능으로 원하는 문서를 찾을 수 있습니다. 하지만, 그래도 가끔씩 부족한 점을 상위노출(Priority Page)에서 이용할 수 있습니다.

상위노출 페이지에서 제공되는 기능은 다음과 같습니다.

  • 관련된 문서 표시
  • 코멘트, 최근 문서 리뷰

작업공간(Workpage)에서는 관련된 그룹 콘텐츠를 보다 쉽게 이용할 수 있습니다. 또한 개인적인 작업공가을 만들어서 업무 효율을 높힐 수 있습니다.



보다 자세한 내용은 다음 링크를 참고하세요. Google Drive 상위노출(Priority)와 작업공간(Workspace)