2017-09-28 2 views
1

Wie kann ich Slack-Workspace-Daten erhalten, während der Benutzer meine lockere Anwendung installiert?Wie bekomme ich Informationen über alle Arbeitsbereiche, die meine slack-App installiert haben?

Mein Ziel ist es, alle Workspace-IDs zu sammeln, die meine Anwendung installiert haben.

Hauptidee:

  • Benutzer haben meine Anwendung
  • Workspace ID installiert ist (wenn die Anwendung installiert wurde) nach der Zulassung zu einer externen URL sendet
  • handless Server Anfrage

Kann ich dieses Problem über diesen Prozess lösen? https://api.slack.com/docs/oauth

+0

Sorry, aber ich habe Probleme zu verstehen, was Sie tun möchten. Kannst du bitte neu formulieren? –

+0

Ich möchte IDs aller Teams (Arbeitsbereiche) sammeln, die meine Anwendung über Slack installiert haben. – Sabutobi

Antwort

1

Jedes Slack-Team muss den OAuth-Prozess durchlaufen, um die Slack-App in ihrem Arbeitsbereich zu installieren. Dies geschieht normalerweise, indem Sie eine Webseite Ihrer App aufrufen, die über die Schaltfläche "Add to Slack" verfügt und den Oauth-Prozess mit dem Slack-Server moderiert.

Wenn der OAuth-Prozess erfolgreich ist, erhält Ihre App den arbeitsbereichsspezifischen Zugriffstoken zusammen mit Informationen zum Team einschließlich Team-ID und Teamdomäne vom Slack-Server. Ihre App sollte diese Informationen speichern, damit Sie sie später wie gewünscht abrufen und verwenden können.

Wenn Sie nur das Zugriffstoken von jedem Slack-Team gespeichert haben, können Sie mit diesem Zugriffstoken auth.test aufrufen, um weitere Informationen über das verbundene Slack-Team einschließlich der Team-ID abzurufen.

Kurz gesagt, ja, der OAuth-Prozess wird Ihnen helfen, diese Informationen zu sammeln.

+0

Danke für Ihre Antwort. Ist 'redirect_uri' Parameter der Auth Anfrage geeignet um diese Daten zu speichern? – Sabutobi

+0

Nein, die Redirect_uri ist, wie Sie Slack mitteilen, auf welcher Webseite der Benutzer weitergeleitet werden soll, nachdem er den Anmeldevorgang abgeschlossen hat. Ich würde empfehlen, die Slack-Dokumentation zu [Oauth] (https://api.slack.com/docs/oauth) sorgfältig zu lesen, um ein besseres Verständnis dafür zu bekommen, wie es funktioniert. –

+0

Danke nochmal für frische Ideen. Schönen Tag und gute Laune! – Sabutobi

2

Wenn Sie sie während des OAuth-Nachrichtenflusses nicht gespeichert haben, können Sie nicht alle vorhandenen Arbeitsbereiche abrufen, die Ihre Slack-App installiert haben.

Wie Erik sagte, erhalten Sie die Arbeitsbereichsinformationen jedes Mal, wenn Ihre App installiert wird, aber es ist Ihre Aufgabe, diese Informationen zu speichern.

+0

Dem stimme ich zu. Aber wie speichert man das? Derzeit habe ich Kette Slack User Interface - Slack API. Wie verbinde ich einen externen Server während der Installation? – Sabutobi

+0

@Sabutobi Die Slack App leitet einen Benutzer automatisch zu Ihrer externen Webseite um, wenn der Benutzer im Slack App Directory auf Installieren klickt. Sehen Sie sich auch diese Dokumentation zum [Slack-Button] (https://api.slack.com/docs/slack-button) an. Sie können es mit einer meiner Apps ausprobieren. Versuchen Sie "Raffle Bot" aus dem App-Verzeichnis zu installieren ... –

+1

Sie benötigen einen Server, auf dem Ihre Node.JS-Anwendung gehostet wird. Die redirect_url (wo der Benutzer während des OAuth-Flusses umgeleitet wird) befindet sich auf diesem Server und dieses Skript ist der ideale Ort, um die Informationen in jeder Speicher-Engine zu speichern, die Sie mit Ihrer Node.JS-App verwenden möchten (es kann Mongo, Redits sein , MySQL oder etwas anderes, mit dem Sie bequem arbeiten können. – Savageman

0

Wenn jemand eine Lösung braucht. Von slack-docs:

Es ist Zeit, eine Weiterleitungs-URL für Ihre App einzurichten. Dies ist der Endpunkt für Slack, um während einer Benutzerinstallation einen eindeutigen temporären Code an Ihren Server zu senden. Ihr Server wird dann diesen Code unter mit Ihrer Client ID und Ihrem Client Secret zurücksenden, so dass wir wissen, dass wir Ihnen vertrauen können .

Also, wenn jemand Ihre App installiert, die auf redirect_url Ihrer App-Einstellungen umleitet. Als wenn Benutzerberechtigungen akzeptiert:

  • Slack API gesendet Code auf den Server
  • Sie haben zurück Code zu senden. Beispiel mit Knoten siehe unten:

const request = require('request-promise'); let options = { method: 'POST', uri: 'https://slack.com/api/oauth.access', formData: { client_id: "client_id", client_secret: "client_secret", code: req.query.code }, json: true }; request.post(options).then(result => { res.json(result) });

In Variable für Sie alle Daten für die Sammlung haben.

Verwandte Themen