Google电子表格从网址获取参数

时间:2017-06-28 12:18:36

标签: javascript google-apps-script oauth google-sheets

我有一个应用,它通过OAuth 1.0将一项服务与Google表格相关联。

我点击"登录"在插件菜单中,发送签名和回调域(当前表)。然后在服务中我点击按钮,获取请求令牌,然后返回带参数的指定域。

function onOpen(e)
{
    Logger.log( SpreadsheetApp.getActiveSpreadsheet().getUrl() );
    Logger.log( e.source.getUrl() );
}

.getUrl()并不包含它们。

根据>this<,我无法在表格中使用doGet(e),而且由于OAuth,我无法使用网络应用,因为我仍然需要将这些参数传递给表格

我试图通过window.top.location.href在客户端获取它,但是存在跨域错误。

问题:我可以得到它吗?或者这是不可能的?

1 个答案:

答案 0 :(得分:0)

所以,部分回答我的问题:

我们需要2个不同的脚本。第一个是Sheets web插件,第二个是Web App。接下来,我们需要实现屏幕截图中显示的所有步骤: steps 1)在步骤0,1,2之后,服务提供商应使用以下代码将我们重定向到帮助程序脚本(Web App):

function doGet(e)
{
    var token    = e.parameter.oauth_token,
        code     = e.parameter.oauth_verifier,
        response;

        if(token && code && Root.setVerificationCode(token, code))
            response = "Success";
        else
            response = 'Error';

    return HtmlService.createHtmlOutput(response);
}

这里我们检索GET参数并将它们发送到Sheets web addon(Root)。 点击Resources -> Libraries,然后将您的插件添加为库。 Root只是一个标识符。

2)表格插件代码:

function setVerificationCode(token, code)
{
    var oauth = new OAuth();
    if(oauth.getAccessToken(code))
    {
        // change menu here
        return true;
    }
    else
        return false;
}

这些是实施OAuth 1.0所需的完整步骤。

P.S。现在我在更改菜单方面遇到了问题,但这是我的下一个问题。