Wie lade ich Datei in Slack über C# und neue Slack -API -Methoden hoch? Dateien.Upload ist veraltetC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie lade ich Datei in Slack über C# und neue Slack -API -Methoden hoch? Dateien.Upload ist veraltet

Post by Anonymous »

Hier ist mein Code - bitte helfen Sie mir bei Arbeitsbeispielen, wie Sie die Datei in Slack laden. Mein Code funktioniert ohne Fehler

Code: Select all

using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using SlackNet;
using SlackNet.WebApi;
using UploadFile.Services;

class Program
{
static async Task Main()
{
string slackToken = "xoxb-my-token";
string channelId = "C0-cnannelid";
string filePath = @"C:\Users\Пользователь\Desktop\test.txt";

string fileName = Path.GetFileName(filePath);
byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);

var api = new SlackServiceBuilder()
.UseApiToken(slackToken)
.GetApiClient();

var getUploadResponse = await api.Files.GetUploadUrlExternal(fileName, fileBytes.Length);
string uploadUrl = getUploadResponse.UploadUrl;
string fileId = getUploadResponse.FileId;

using var httpClient = new HttpClient();
using var fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

var uploadResponse = await httpClient.PutAsync(uploadUrl, fileContent);
uploadResponse.EnsureSuccessStatusCode();

var uploadedFiles = await api.Files.CompleteUploadExternal(
new[] { new ExternalFileReference { Id = fileId, Title = fileName } },
channelId: channelId
);

if (uploadedFiles.Count == 0)
{
throw new Exception("Ошибка: файл не прикрепился к каналу.");
}
}
}
I added bot to channel and bot has these bot token scopes:
  • channels:read
  • chat:write
  • dnd:read
  • files:read
  • files:write
  • groups:read
  • im:read
  • incoming-webhook
  • mpim:read
  • pins:read
  • pins:write
  • remote_files:read
  • remote_files:share
  • remote_files:write
User token scopes:

[*]chat:write
[*]files:read
[*]files:write
Pins: Lesen Sie < /li>
Pins: Schreiben Sie < /li>
Remote_files: Lesen Sie < /li>
remote_files: share < /li>
< /ol>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post