2016-08-12 2 views
0

Google 스프레드 시트에 글을 쓰려고하고 있는데 Google App Script에 대해 알아보고 빠른 시작을 수행했습니다. 이제는 내 자신의 Script에 대한 호출을 시도하지만, 내가 할 때마다 401 인증되지 않은 오류가 발생하지만 빠른 시작 스크립트는 사용하지 않습니다. 하지만 응용 프로그램에서 스크립트에서 직접Android 앱의 Google Scripts 실행 API 사용

function myFunction() { 
var sheet = spreadsheetApp.openById('17it0wughXXbFMPVzVcU0pG5jAkiRZBRfH0ht4GXirWM');  
var range = sheet.getDataRange(); 
sheet.getRange('b2').setValue('Hello'); 
if(sheet.getRange('b2').getValue()==='Hello'){ 
          return 'success'; 
          } 

}

: 나는 스크립트를 실행할 수 있습니다. 아무도이 문제를 해결하는 방법을 알고 있습니까?

나는 코드가 있습니다

function myFunction() { 
var sheet= SpreadsheetApp.openById('17it0wughXXbFMPVzVcU0pG5jAkiRZBRfH0ht4GXirWM'); 
} 

을하고 난 오류가 발생합니다. 그런 다음 변경합니다 :

function myFunction() { 
var sheet= DriveApp.getFileById('17it0wughXXbFMPVzVcU0pG5jAkiRZBRfH0ht4GXirWM') 
} 

및 오류 없음. 그러나 SpreadsheetApp를 사용하여 내 앱에서 호출하려고합니다. 도와주세요.

답변

0

Error 401은 권한 헤더가 유효하지 않음을 의미합니다. 사용중인 액세스 토큰이 만료되었거나 유효하지 않습니다. 이 related SO question에서 오류에 대한 가능한 해결 방법을 찾았습니다.

devMode가 false이거나 요청에서 생략 된 경우 Execution API는 스크립트의 현재 게시 된 버전을 사용합니다. 내가 의심하는 바는 스크립트에 OAuth 범위가 변경되었다는 것입니다. 사용자의 OAuth 토큰에는 프로젝트에 필요한 모든 범위가 포함되어야합니다.

프로젝트의 속성을 열고 범위 탭을 클릭하십시오. 자바 클라이언트의 OAuth 범위 요청이 목록에있는 것과 일치하는지 확인하십시오. 클라이언트에 추가 범위가있을 수 있지만 적어도 해당 목록에있는 모든 항목을 포함해야합니다.

또한 실행 API 배포 대화 상자에는 자신이나 도메인 또는 다른 사람에게 액세스를 제한하는 옵션이 있습니다. 클라이언트에서 사용하는 사용자 계정이 선택과 일치하는지 확인하십시오.

개발자 콘솔에서 "Google Apps Script Execution API"를 사용하도록 설정했는지 확인하십시오. 그런 다음 자격증 명 아래에 새로운 'OAuth 2.0 고객 ID'자격증 명을 추가했는지 확인합니다. 이 blog을 확인하십시오.

희망이 도움이됩니다.

+0

예, 확실하지만 문제는 스프레드 시트에만 있습니다. 드라이브를 호출 할 수는 있지만 스프레드 시트가 아닙니다. 스프레드 시트는 범위 목록에 있습니다. – TCTBO