我确信这真的很明显而且很容易做到,但我似乎找不到任何关于如何做到这一点的信息。
所以我有一个 chrome 扩展,它可以做一些事情并使用 javascript 收集一些数据。这一切都很好。我想将此数据写入谷歌电子表格。因此,我使用 Google 电子表格 API 在 Java 中编写代码,将带有数据的行插入到适当的电子表格中。(代码基本上只是这里的教程https://developers.google.com/google-apps/spreadsheets/#adding_a_list_row并添加了适当的 OAuth 位)
如何让我的扩展程序使用它?我是否需要将其打包为 Web 应用程序并从扩展程序中调用它?我可以编写一个实现相同功能的 javascript 代码并将其与应用程序打包吗?再次抱歉,如果这真的很明显,这是我第一次在 Web 应用程序上工作,所以我一直在努力解决这个问题。谢谢。
这是用于写入电子表格的(精简的)java代码:
public class MySpreadsheetIntegration {
public static void main(String[] args)
throws AuthenticationException, MalformedURLException, IOException, ServiceException {
**OAuth stuff all happens first, not shown here as I'm not too concerned about it at the moment***
SpreadsheetService service =
new SpreadsheetService("MySpreadsheetIntegration-v1");
// Define the URL to request. This should never change.
URL SPREADSHEET_FEED_URL = new URL(
"https://docs.google.com/some_url");
// Make a request to the API and get all spreadsheets.
SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL,
SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries();
//this pulls out the first spreadsheet.
SpreadsheetEntry spreadsheet = spreadsheets.get(0); //spreadsheet is of type List
//System.out.println(spreadsheet.getTitle().getPlainText());
// Get the first worksheet of the first spreadsheet.
WorksheetFeed worksheetFeed = service.getFeed(
spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class);
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
WorksheetEntry worksheet = worksheets.get(0);
// Fetch the list feed of the worksheet.
//I think this will give me the headings from the spreadsheet, but insert them manually for now
URL listFeedUrl = worksheet.getListFeedUrl();
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
// Create a local representation of the new row.
ListEntry row = new ListEntry();
String sDt, sUs, sTy, sAcc, sAccTy, sCon, sNt, sFw, sFwDt;
sDt = "1/1/2013";
sUs = "SK";
row.getCustomElements().setValueLocal("Date", sDt);
row.getCustomElements().setValueLocal("User", sUs);
// Send the new row to the API for insertion.
//this will be inserted at the bottom of the row.
//TODO make this get inserted at the top of the worksheet
row = service.insert(listFeedUrl, row);
System.out.println("Revoking OAuth Token...");
oauthHelper.revokeToken(oauthParameters);
System.out.println("OAuth Token revoked...");
}
}
扩展弹出窗口只是一个带有表单的基本 HTML 页面。我有一个 javascript 将一些详细信息写入此表单,然后用户将手动输入更多信息。然后我想使用电子表格 API 来获取这些值并将它们写入适当的电子表格。这就是上面的java代码所做的,但我不知道如何将两者联系起来。