質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.83%

  • Windows 10

    812questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Slack

    158questions

    Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

  • WSH

    30questions

    WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

windows10のWSHを利用して SLACKのチャンネルにファイルをアップロードさせるbotスクリプト

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 74

 前提・実現したいこと

windows10のWSHを利用してSLACKのチャンネルにファイルをアップロードさせるbotスクリプトを作りたいです

なぜかGoogle SpreadSheetからxlsxファイル形式でSLACKのチャンネルに送りつけることは成功しています。
が、
単純にWSHを利用してwindowsのローカルフォルダにあるファイルを転送、という流用ができません
なんともお恥ずかしい程度の相談かと思いますが、御指南のほどをお願いします。

 cscript(コマンドライン)では受け付けてもらえるがSlackには反応がないコード

function slack() {
var url        = 'https://slack.com/api/files.upload';
var token      = 'botのトークン'; // xoxb-で始まるボットのトークンが入ります
var channel    = '#general';

// 現在日付を取得
var nowDate= (new Date())
var nextDate = Utilities.formatDate(new Date(nowDate.getYear(), nowDate.getMonth(), nowDate.getDate() +1), 'JST', 'MMdd');
var xlsxName = "日付ありファイル " + nextDate + "送信";

var payload = {
'token'      : token,
'channels'   : channel,
'file'        : 'z:\slack.xlsx', //コマンドラインの引数でやるのが望ましいがここは仮にzドライブのxlsxをアップしてみる
'filename'    : xlsxName,
'initial_comment' : "日付ありファイル " + nextDate + "をアップしました"
};

var params = {
'method' : 'post',
'payload' : payload
};

}

 Google SpreadSheetからはファイルアップロードが作動するコード

function SlackAttachiments(){

var ss = SpreadsheetApp.getActiveSpreadsheet();
//スプレッドシートオブジェクトからIDを取り出す
var fileId   = ss.getId();
//Excelファイルの名前は適当に
// 現在日付を取得
var nowDate= (new Date())
var nextDate = Utilities.formatDate(new Date(nowDate.getYear(), nowDate.getMonth(), nowDate.getDate() +1), 'JST', 'MMdd');
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var range = sheet.getRange(1, 7, 1, 2);
var xlsxName = "エクセル " + range.getValues() + nextDate + ".xlsx";

//エクスポート用のURLはこちら
var fetchUrl = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + fileId + "&exportFormat=xlsx";

//OAuth2対応が必要
var fetchOpt = {
"headers" : { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
"muteHttpExceptions" : true
};

//URLをダウンロード
var xlsxFile = UrlFetchApp.fetch(fetchUrl, fetchOpt).getBlob().setName(xlsxName)

var yourSelections = Browser.msgBox("エクセル " + range.getValues() + nextDate + " を\\nSlack #general に送信しますか?", 
Browser.Buttons.OK_CANCEL);
if (yourSelections == 'ok'){
slack(xlsxFile);
Browser.msgBox("送信しました。Slackで返信を確認してください");
}

}

function slack(xlsxFile) {
var url        = 'https://slack.com/api/files.upload';
var token      = 'botのトークン'; // xoxb-で始まるボットのトークンが入ります
var channel    = '#general';
//Excelファイルの名前は適当に
// 現在日付を取得
var nowDate= (new Date())
var nextDate = Utilities.formatDate(new Date(nowDate.getYear(), nowDate.getMonth(), nowDate.getDate() +1), 'JST', 'MMdd');
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var range = sheet.getRange(1, 7, 1, 2);
var xlsxName = "エクセル " + range.getValues() + nextDate + ".xlsx";

var payload = {
'token'      : token,
'channels'   : channel,
'file'        : xlsxFile,
'filename'    : xlsxName,
'initial_comment' : "エクセル " + range.getValues() + nextDate + "をアップしました"
};

var params = {
'method' : 'post',
'payload' : payload
};

var response = UrlFetchApp.fetch(url, params);
}

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Windows 10

    812questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Slack

    158questions

    Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

  • WSH

    30questions

    WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。