簡體   English   中英

從 Android 應用程序運行 Google Apps 腳本?

[英]Run a Google Apps Script from Android App?

我需要在我創建的 Google Apps Script Web App 上運行 GET 調用。 我想在我的 Android 應用程序 (IntentService) 中按下一個按鈕后執行這個 GET 調用。

但是,我不確定如何進行授權流程,因為 Google Apps 腳本旨在在用戶自己的 Gmail 帳戶上運行(它以“訪問網絡應用程序的用戶”身份執行清理腳本)。

有沒有辦法讓我進行身份驗證,以便我可以從我的 Android 應用程序觸發依賴於用戶的 Google Apps 腳本?

好的。 以下代碼對我有用。

new AsyncTask<Void, Void, Void>() {

@Override
protected Void doInBackground(Void... params) {

    // The Google Script URL
    String googleAppsScriptURL = "https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-o/dev";
    HttpURLConnection connection = null;
    try {
        URL url = new URL(googleAppsScriptURL + "?param1=foo&param2=bar");
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Authorization", "Bearer " + sessionManager.getCredentials().getToken());

        if(connection.getResponseCode() == 200) {
            // DO STUFF
        }
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (GoogleAuthException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }  finally {
        if(connection != null) {
            connection.disconnect(); 
        }
    }
    return null;
}
}.execute();

調用connection.getResponseCode()對獲取實際請求很重要。 sessionManager.getCreadentials() 是我的一個 Singleton Application 類,它返回GoogleAccountCredential對象,這是 oAuth2 身份驗證過程所必需的。

最后這段代碼將輸入到 Google Scripts 的 doPost 函數中:

function doPost(e) {  
   if(typeof e !== 'undefined') {
    Logger.log(e.parameters.param1); // foo
    Logger.log( e.parameters.param2); // bar
    callYourFunction(e.parameter.param1, e.parameter.param2);
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM