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

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

新規登録して質問してみよう
ただいま回答率
85.48%
OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Slack

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1660閲覧

【SlackAPI】自作アプリのユーザーのSlack情報を取得、変更したい

goki

総合スコア13

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Slack

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/10/19 04:17

前提

現在ユーザーのメッセージツール(Slackなど)の通知を管理するmacOSアプリ(以下自作アプリ)を作成しているのですが
自作アプリのユーザーのSlack情報を取得・変更する機能を実装したいと考えております。

Slackのドキュメントを読むことはもちろん、かなりの調査したつもりですが、非エンジニアでプログラミングの知識が浅いためなかなか実現させることができなかったためご質問させて頂きました。
https://api.slack.com/legacy/oauth こういったドキュメントを見るにこれは古いやり方といったような記載もあり、混乱したりなど。。)

具体的に実現したいこと

自作アプリの機能として、以下を実現したいです。
1. ユーザーが、ユーザー所属のSlackワークスペースとアプリを連携する機能(←今回は主にこちらについてお聞きしたいです)

2.連携したワークスペースにおけるユーザーのSlack情報をアプリから取得・更新する機能
※slackbotを作るのではなく、ユーザーの情報を操作できるようにパーミッションを得たいと考えております。

知りたいこと

わからないことだらけなため拙い質問内容で恐縮ですが一旦以下2点をお伺いしたいです。
どうぞよろしくお願いいたします。。!

  • ユーザーのパーミッション(user token?)を取得し、利用すれば、自作アプリからユーザーの情報(ステータス情報など)を取得や変更を行うことができるという認識ですがそもそも合っておりますでしょうか?

  • 上記の質問が正しい場合パーミッション取得のフローは以下で正しいでしょうか?

  1. Slackアプリを作成し、signing secretやアプリのトークンなどの情報を取得できる状態にする
  2. パーミッションをユーザーからもらう(ワークスペースを連携する)ために以下を実装する

・clientIDなどの情報を付与した上で、https://slack.com/oauth/authorizeにユーザーをリダイレクトさせ、連携(アプリをワークスペースに追加?)してもらう
・連携時に返ってくるアクセストークンを取得、保管する

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

はい、 ユーザーのステータスを更新したい場合は users.profile:write という user scope があれば OK です。 xoxp- ではじまる user token が発行されますので、それを使って users.profile.set API を呼び出します。

以下のページで user などのキーワードで検索すると、関係ある API や権限を探すのが簡単です。

インストールについては自分のためだけのアプリであれば、アプリの設定画面にあるインストールボタンからインストールしてアクセストークンを発行することができます。

OAuth フローを実装して誰でもインストールできるようにしたい場合は、そちらの古い方のドキュメントではなく https://api.slack.com/authentication/oauth-v2 を参考にしてください。もし JavaScript や Python で実装しているなら、公式の Bolt フレームワークを使うことをおすすめします。

投稿2021/10/19 08:33

seratch

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki

2021/10/22 08:38

ご教授いただきまして大変ありがとうございます! どの情報を信じるべきか何も確信が持てない手探り状態の中こういったご回答をいただき、進む道が一気に見えました。 いただいたURLを参考にしたり調査していった結果、実際にアクセストークンを取得できました! この度は本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問