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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

3292閲覧

slackのメッセージを受信するプログラム

taka0503

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/08/11 08:29

前提・実現したいこと

slackのメッセージをpythonで取得できるプログラムを作っていますが下記のエラーの対処法が分からず困っています。

発生している問題・エラーメッセージ

エラーメッセージ
messages = json_data["messages"]
KeyError: 'messages'

該当のソースコード

使用言語 python
ソースコード
import requests
import json

url = "https://slack.com/api/conversations.history"
token = "{自分のトークン}"
channel_id = "{自分のチャンネルid}"

def main():
payload = {
"token": token,
"channel": channel_id
}
response = requests.get(url, params=payload)

json_data = response.json() messages = json_data["messages"] for i in messages: print(i["text"])

if name == "main":
main()

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

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

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

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

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

guest

回答2

0

自己解決

{}を外して実行したらうまくいきました。
回答をくださった方ありがとうございました。

投稿2020/08/12 05:15

taka0503

総合スコア0

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

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

0

messages = json_data["messages"]
KeyError: 'messages'

このエラーの通り、json_dataの属性として、messagesがないことを意味しています。

print(json_data)

とするとjson_dataの中身が見れるので、その中で具体的なエラーの内容が確認できるはずです。

例えば、間違ったチャネルIDを指定していたら、下記のようなログが出るはずです。

{ "ok": false, "error": "channel_not_found" }

投稿2020/08/11 11:58

Arahabica

総合スコア209

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

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

taka0503

2020/08/12 04:07

print(json_data)で実行すると {'ok': False, 'error': 'invalid_auth'} が返ってきます。
Arahabica

2020/08/12 04:09

tokenが間違ってるんじゃないでしょうか?
taka0503

2020/08/12 04:19

slackapiのサイトのTesterで同じトークン、チャンネルidで実行した結果ではうまくいくのでtokenは間違っていないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問