2016-08-12 7 views
0

Googleスプレッドシートに書き込もうとしていて、Google App Scriptについて知り、クイックスタートを実行しました。今、私は自分のスクリプトを呼び出そうとしていますが、いつでも私は401の不正なエラーを受け取りますが、クイックスタートスクリプトを使用するとエラーになりません。スクリプトからではなく、アプリから直接AndroidアプリのGoogle Scripts Execution 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トークンには、プロジェクトに必要なすべてのスコープが含まれている必要があります。

プロジェクトのプロパティを開き、[スコープ]タブをクリックします。 JavaクライアントのOAuthスコープ要求が、リストにあるものと一致することを確認します。クライアントに余分なスコープがあるかもしれませんが、少なくともそのリストにあるすべてのスコープを含める必要があります。

また、Execution APIデプロイメントダイアログには、自分やドメイン、または誰かへのアクセスを制限するオプションがあります。クライアントで使用しているユーザーアカウントが選択したものと一致することを確認します。

また、デベロッパーコンソールで「Google Apps Script Execution API」を有効にしていることを確認してください。次に、[資格情報]の下に新しい「OAuth 2.0クライアントID」資格情報を追加するかどうかを確認します。これをチェックしてくださいblog

希望すると便利です。

+0

はい、私はそれを確認しましたが、問題はスプレッドシートでのみ発生します。ドライブを呼び出すことはできますが、スプレッドシートは使用できません。スプレッドシートはスプレッドリストにあります。 – TCTBO

関連する問題