私はいくつかの研究を行ってきましたが、何らかの理由でこれを示す良い例をどこにも見つけることができず、それが可能であるかどうかさえ疑問に思い始めています。
私が探しているのは、拡張機能にGoogleスプレッドシート内にデータを書き込んでもらい、シートがデータベースとして使用されるようにすることです。
誰かが私が従うことができるドキュメントを持っていますか? Spreadsheet APIがJavaScriptを許可していないように思われることを考えると、それも可能ですか?
サンクス。
はい、それは間違いなく可能です。私はJavascriptを使用してSpreadsheetAPIを広範囲に使用しました。ここに記載されているように、APIのプロトコルバージョンを使用する必要があります: https://developers.google.com/google-apps/spreadsheets/
これには、OAuth2を使用して署名されたリクエストを送信する必要があります(古い認証プロトコルはもはや実際には信頼できません)。したがって、JSOのようなOAuth2ライブラリを使用することをお勧めします。 https://github.com/andreassolberg/jso
JavaScriptを作成するときは、プロトコルAPIとインターフェイスするXML文字列を作成する関数を作成する必要があります。応答の解析は非常に簡単です。使用したコードのスニペットを含めました。 JQueryを使用した関連する質問に対する私の回答もここで確認できます。 JQuery .ajax POST to Spreadsheets API?
function appendSpreadsheet(){
//Constructs the XML string to interface with the Spreadsheet API.
//This function adds the value of the param foo to the cell in the first empty row in the column called 'columnTitle'.
//The Spreadsheet API will return an error if there isn't a column with that title.
function constructAtomXML(foo){
var atom = ["<?xml version='1.0' encoding='UTF-8'?>",
'<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">',//'--END_OF_PART\r\n',
'<gsx:columnTitle>',foo,'</gsx:columnTitle>',//'--END_OF_PART\r\n',
'</entry>'].join('');
return atom;
};
var params = {
'method': 'POST',
'headers': {
'GData-Version': '3.0',
'Content-Type': 'application/atom+xml'
},
'body': constructAtomXML(foo)
};
var docId //Get this from the spreadsheet URL or from the Google Drive API.
var worksheetId = 'od6'; //The worksheet Id for the first sheet is 'od6' by default.
url = 'https://spreadsheets.google.com/feeds/list/'+docId+'/'+worksheetId+'/private/full';
sendSignedRequest(url, handleSuccess, params); //Use your OAuth2 lib
}
あなたは私が数ヶ月前に持っていたのと同じ質問をしていると思います。同じことを行うライブラリを探していましたが、見つからなかったため、 gsloader というライブラリを作成することになりました。私はこれでこのライブラリを使用しています jiraProgressTracker chrome拡張機能。Chrome拡張機能は開発中ですが、gsloaderライブラリを使用する準備ができています。
これがあなたがする必要があることです。
以下は、使用するコードスニペットです。
//承認を行う
_var clientId = "<your client id>";
_
GSLoader.setClientId(clientId);
//既存のスプレッドシートを読み込みますGSLoader.loadSpreadsheet("spreadsheet id");
//スプレッドシートを作成しますGSLoader.createSpreadsheet("spreadsheet id")
ここですべてに言及するのではなく、使用できるメソッドとオブジェクトが十分にあるので、ドキュメントを利用できるようにします。
全体的にどのように機能するのか教えてください。