Используйте Slack API Bot, чтобы получать тексты сообщений и помещать их в лист Google

Используя GPT, я смог создать Slack-бота и подготовить токен. Но это ниже строк не работает.

Я попробовал тестер в этом https://api.slack.com/methods/conversations.history, чтобы убедиться, что токен действителен. Я подозреваю, что приведенный ниже URL-адрес не работает, но не знаю, как это исправить.

Если у вас есть более простой способ получить данные и поместить их в Google Sheet, сообщите мне об этом.


function getConversationHistory() {
  var token = "YOUR_SLACK_API_TOKEN";
  var channel = "CHANNEL_ID";
  var url = "https://slack.com/api/conversations.history?token = " + token + "&channel = " + channel;
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  var messages = data.messages;
  for (var i = 0; i < messages.length; i++) {
    var message = messages[i];
    var text = message.text;
    var ts = message.ts;
    // do something with the message data
  }
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите поместить полученные значения var url = "https://slack.com/api/conversations.history?token = " + token + "&channel = " + channel; из Slack в Google Spreadsheet.
  • Из вашего сценария показа вы хотите получить значения text и ts.
  • Ваш токен доступа и идентификатор канала являются допустимыми значениями.

В таком случае, как насчет следующей модификации?

Модифицированный скрипт:

В этом случае скопируйте и вставьте следующий скрипт в редактор скриптов Google Spreadsheet и сохраните скрипт после подтверждения значений token и channel.

function getConversationHistory() {
  var token = "YOUR_SLACK_API_TOKEN";
  var channel = "CHANNEL_ID";
  var url = "https://slack.com/api/conversations.history?token = " + token + "&channel = " + channel;
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());

  // I modified the below script.
  var headers = ["text", "ts"];
  var values = [headers, ...data.messages.map(o => headers.map(h => o[h] ? (h == "ts" ? new Date(o[h] * 1000) : o[h]) : null))];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // Please set the sheet name.
  sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}
  • Когда этот скрипт запускается, значения text и ts из url помещаются в «Лист1» электронной таблицы.

Ссылка:

Привет Танаке, спасибо за изучение этого. В качестве продолжения у меня возникла проблема с доступом к слабому API, используя эту URL-ссылку. это дает мне invalid_auth. Интересно, это устаревший метод и его больше нельзя использовать? Но спасибо за изменение части сценария сообщения.

Miles 20.04.2023 17:35

@Miles Спасибо за ответ. Я рад, что ваша проблема была решена. Что касается вашего нового вопроса As a follow up, I had a problem accessing the slack api use that URL link. it is giving me invalid_auth. I wonder if this is legacy method and can no longer be used., я хотел бы вас поддержать. Но, я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять ваш новый вопрос. Итак, я хотел бы порекомендовать опубликовать его как новый вопрос. Если вы можете сотрудничать, чтобы решить ваш новый вопрос, я рад. Можете ли вы сотрудничать, чтобы сделать это?

Tanaike 21.04.2023 00:54

Другие вопросы по теме

Похожие вопросы

Вставьте результаты формулы СЧЁТЕСЛИ, а не формулу
Выпадающий фильтр по продукту
Как скрыть предварительно заполненный вопрос в формах Google с помощью скрипта Google Apps?
Как я могу сравнить 2 списка и использовать результат для вставки строк
Скрипты приложений Google не заменяют весь текст на слайде
Как использовать рисунок в качестве кнопки для редактирования или навигации по электронной таблице, в которой он существует, без использования класса SpreadsheetApp?
Сценарий Google Apps: как получить FileByID и установить желаемый тип файла и многое другое
Заполните данные из вызова API в раскрывающемся списке с соответствующим идентификатором учетной записи
Загружать различные CSS в зависимости от пользовательского устройства в веб-приложении Google Script
Есть ли более эффективная формула для применения условного форматирования с использованием функции ROW?