1

我确信这真的很明显而且很容易做到,但我似乎找不到任何关于如何做到这一点的信息。

所以我有一个 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代码所做的,但我不知道如何将两者联系起来。

4

0 回答 0