2012-04-19 5 views
0

Google 사이트에서 Apps Script로 작업하고 있으며 Oauth를 사용하여 활성 사용자로 가젯을 인증하여 활성 사용자 문서 목록을 표시하려고합니다. 몇 가지 Google 그룹 토론에서 답변을 찾지 못했다면 여기에서 답변을 얻을 수 있기를 바랍니다. 내 코드는 다음과 같습니다.Apps Script를 사용하여 현재 로그인 한 사용자의 Google 문서 도구 목록을 얻으려면 어떻게해야합니까?

var oauthConfig = UrlFetchApp.addOAuthService ("gDocs"); oauthConfig.setAccessTokenUrl ("https://www.google.com/accounts/OAuthGetAccessToken"); oauthConfig.setRequestTokenUrl ("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://docs.google.com/feeds/"); oauthConfig.setAuthorizationUrl ("https://www.google.com/accounts/OAuthAuthorizeToken"); oauthConfig.setConsumerKey ("myDomainName"); oauthConfig.setConsumerSecret ("myCosumerSeceret");

VAR 옵션 = { "방법" "헤더", "GET": { "의 GData-버전을": "3.0"}, "oAuthServiceName을": "gDocs" "oAuthUseToken" " 항상 " };

var results = UrlFetchApp.fetch ("https://docs.google.com/feeds/default", options);

코드가 실행되지 않고 가젯이있는 페이지가 표시됩니다. 해당 작업을 수행하려면 인증이 필요합니다.

도움을 주시면 감사하겠습니다.

3 다리의 OAuth를 사용하여 권한 부여를 수행하기 위해, 제임스 Krimm

답변

0

그것은 active user 데이터에 액세스 할 수 없습니다. 게시 된 Apps Script는 사이트와 마찬가지로 effective user이라는 스크립트 소유자의 계정으로 실행됩니다. 보안 문제로 스크립트 소유자는 active user의 데이터에 액세스 할 수있는 권한이 없습니다.

@claudio가 (내장 DocsList를 사용하여) 제안하는 것은 불가능합니다.

우리는 Google Apps 도메인 및 일반적인 소비자 계정에 대해 이야기하고 있으며 스크립트 소유자는 도메인 관리자입니다. 이 경우 Google 문서 목록 데이터 API를 사용하여 도메인의 모든 사용자를 가장 할 수 있습니다.

어쨌든이 시나리오와 상관없이 소비자 키와 암호는 항상 "익명"이어야합니다.

+0

내 대답을 참조하십시오. 가스가 소유자 대신 웹 앱에 액세스하는 사용자로 실행되도록 구성 할 수도 있습니다. –

+1

이 답변은 구식입니다. 사용자가 액세스 할 때 실행할 스크립트를 배포하는 옵션이 있습니다. 그러나 어느 누구도이 문제에 대해 의심을 품을 수 없다는 점은 분명합니다. -/ –

+0

+1, 사용하기 전에 답을 찾지 못했습니다 :) –

1

을 주셔서 감사합니다, 당신은 ConsumerKey 및 ConsumerSecret로 '익명'을 사용해야합니다 :주의하시기 바랍니다 또한

oauthConfig.setConsumerKey("anonymous"); 
oauthConfig.setConsumerSecret("anonymous"); 

의 올바른 피드 URL은 https://docs.google.com/feeds/default/private/full입니다.

그러나 활성 사용자의 문서 목록을 가져 오는 것이 목표라면 Apps Script에서 제공하는 DocsList 서비스를 사용하는 것이 어떻습니까? 그들은 또한 당신을 위해 결과를 파싱 할 것입니다.

https://developers.google.com/apps-script/service_docslist

0

이 특별한 오류는 아마도 OAuth와 관련이 없지만 DocsList를 앱에 추가하는 것과 관련이 있습니다.

은 참조 : https://developers.google.com/apps-script/troubleshooting#common_errors

인증은 해당 작업을 수행하는 데 필요합니다.

이 오류는 스크립트가 실행해야 할 권한이 이 아님을 나타냅니다. 스크립트 편집기 또는 사용자 지정 메뉴 항목에서 스크립트를 실행하면 권한 대화 상자가 사용자에게 표시됩니다. 그러나 스크립트를 서비스로 실행하거나 Google 사이트 페이지에 포함 시키거나 트리거에서 실행하면 대화 상자를 표시 할 수없고 이 오류가 표시됩니다. 스크립트를 승인하려면 스크립트 편집기 을 열고 모든 기능을 실행하십시오. 이 오류를 방지하려면 스크립트에 새로운 서비스 또는 기능을 추가 한 후 스크립트 편집기에서 스크립트를 한 번 실행하십시오.

0

여기의 답변이 올바르지 않습니다. Oauth를 직접 사용하지 않고 필요한 것을 할 수 있습니다. 대신 스크립트 소유자 대신 "현재 사용자로 실행"옵션을 사용하여 Apps Script를 게시하십시오. 그런 다음 DriveApp의 DocsList를 사용하여 사용자 파일을 가져옵니다. 핵심은 여기에 서비스를 게시하여 "사용자가 앱에 액세스 할 때 실행"하는 것입니다.

+0

"사용자로 실행 중"이라고 대답 한 것은 사용할 수 없습니다. –