クラスしたい

以下のサンプルコードでやっていることは同じなので、自分が書きやすいほうで書けばよいです。

実行したい内容

Slack APIを使ってワークスペースに参加しているメンバーのリストと 作成済みのチャンネルのリストを取得します。

function testRun() {
    const API_TOKEN = "xxxxxxxxxx"
    const sa = new SlackAccessor(API_TOKEN);
    const members = sa.requestMembers();
    const channels = sa.requestChannels();
    // (省略)取得したデータをSpreadsheetに書き込む処理
}

classを使った方法

class SlackAccessor {
    constructor(apiToken) {
        this.apiToken = apiToken;
    }

    requestAPI(path, params) {
        // (省略)API取得に必要な情報(URLなど)を作成する処理
        // const url = ...
        // const options = ...
        const response = UrlFetchApp.fetch(url, options)
        const data = JSON.parse(response.getContentText());
        return data;
    };

    requestMemberList() {
        const response = this.requestAPI("users.list");
        return response.members;
    }

    requestChannels() {
        const response = this.requestAPI("conversations.list");
        return response.channels;
    }
}

prototypeを使った方法

もともとJavaScriptには「クラス」を作る機能がなく、 prototypeという機能を使って「クラスのような」実装をしていたみたいです。 これから新しく作成するスクリプトでは、この書き方を真似する必要はないと思われます。

var SlackAccessor = (function () {
    function SlackAccessor(apiToken) {
        this.APIToken = apiToken;
    }

    var p = SlackAccessor.prototype;

    // API リクエスト
    p.requestAPI = function (path, params) {
        // (省略)API用のURLとオプションを作成する
        var response = UrlFetchApp.fetch(url, options);
        var data = JSON.parse(response.getContentText());
        return data;
    };

    // メンバーリスト取得
    p.requestMembers = function () {
        var response = this.requestAPI('users.list');
        return response.members;
    });

    // チャンネル情報取得
    p.requestChannels = function () {
    var response = this.requestAPI('conversations.list');
    return response.channels;
    };
);