PDP*_*DPD 3 python slack-api slack
我试图通过从我所属的松弛通道中提取消息/响应来创建一个小数据集。我想使用 python 从通道中提取数据,但是我无法找出我的 api 密钥。我在 slack 上创建了一个应用程序,但我不确定如何找到我的 api 密钥。我看到了我的客户端密码、签名密码和验证令牌,但找不到我的 api 密钥
这是我相信我正在努力完成的一个基本示例:
import slack
sc = slack.SlackClient("api key")
sc.api_call(
"channels.history",
channel="C0XXXXXX"
)
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我也愿意手动下载数据。任何帮助是极大的赞赏。
请参阅下面的示例代码,了解如何在 Python 中从通道中提取消息。
conversations_history
使用分页调用
。因此,它适用于任何类型的通道,并且可以在需要时获取大量消息。请注意,conversations.history
端点不会返回线程消息。对于conversations.replies
要为其检索消息的每个线程,必须通过一次调用来额外检索这些内容。
通过检查threads_ts
消息中的属性,可以在每个通道的消息中识别线程。如果它存在,就会有一个线程连接到它。有关线程如何工作的更多详细信息,请参阅此页面。
但是,此脚本不会用名称替换 ID。如果您需要,这里有一些如何实现它的指示:
users_list
,conversations_list
并usergroups_list
分别,机器人必须由一个与bots_info进账(如果需要)<@U12345678>
用户或<#C1234567>
频道。这些可以出现在顶级text
属性中,也可以出现在附件和块中。示例代码
import os
import slack
import json
from time import sleep
CHANNEL = "C12345678"
MESSAGES_PER_PAGE = 200
MAX_MESSAGES = 1000
# init web client
client = slack.WebClient(token=os.environ['SLACK_TOKEN'])
# get first page
page = 1
print("Retrieving page {}".format(page))
response = client.conversations_history(
channel=CHANNEL,
limit=MESSAGES_PER_PAGE,
)
assert response["ok"]
messages_all = response['messages']
# get additional pages if below max message and if they are any
while len(messages_all) + MESSAGES_PER_PAGE <= MAX_MESSAGES and response['has_more']:
page += 1
print("Retrieving page {}".format(page))
sleep(1) # need to wait 1 sec before next call due to rate limits
response = client.conversations_history(
channel=CHANNEL,
limit=MESSAGES_PER_PAGE,
cursor=response['response_metadata']['next_cursor']
)
assert response["ok"]
messages = response['messages']
messages_all = messages_all + messages
print(
"Fetched a total of {} messages from channel {}".format(
len(messages_all),
CHANNEL
))
# write the result to a file
with open('messages.json', 'w', encoding='utf-8') as f:
json.dump(
messages_all,
f,
sort_keys=True,
indent=4,
ensure_ascii=False
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3822 次 |
最近记录: |