简体   繁体   中英

Google spreadsheet get parameters from URL

I have an app, that links one service with Google Sheets by OAuth 1.0.

I click "login" in addon menu, send signature and callback domain (current sheet). Then in service I click on button, get request token and it returns me to the specified domain with parameters.

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

But .getUrl() doesn't contain them.

According to > this < I can't use doGet(e) in Sheets and, because of OAuth, I can't use Web App, because I still need to pass these parameters to Sheets.

I tried to get it on client-side by window.top.location.href , but had cross-domain errors.

Question: Can I get it? Or is it impossible?

So, a partial answer to my question:

We need 2 different scripts. The first as Sheets web addon, the second as Web App. Next, we need to implement all the steps presented in the screenshot: 脚步 1) After steps 0, 1, 2 Service Provider should redirect us to Helper script ( Web App ) with the following code:

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);
}

Here we retrieving GET parameters and send them to Sheets web addon ( Root ). Click Resources -> Libraries and add your addon as library. Root is just an identifier.

2) Sheets addon code:

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

These are full steps you need to implement OAuth 1.0.

PS Now I have problems with changing menu, but it'll be my next question.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM