首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Errbot中的个性化API调用/如何在Errbot中存储和访问用户特定的信息?

Errbot中的个性化API调用/如何在Errbot中存储和访问用户特定的信息?
EN

Stack Overflow用户
提问于 2016-12-12 15:33:08
回答 1查看 180关注 0票数 1

在Errbot中存储和访问所有插件都可以访问的用户特定信息的最佳方法是什么?

我的用例是创建一个Redmine (问题跟踪)插件,允许用户创建、更新、关闭、分配问题等等。

这可以通过单个用户令牌获得,但这并不可行,因为所有问题都将由同一个用户编写、更新和记录时间。

有人能建议我一种方法,让用户可以存储和更新他们的用户令牌和插件获取相同的,并使用它来调用apis吗?

P.S.我刚被介绍给Chatops/Errbot尝试一些东西。如果有更好的方法,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-14 16:10:22

您会询问如何存储所有插件都可以访问的信息。这可以通过插件依赖关系实现,但实际上似乎不适用于您的用例,因为您似乎只需要那些用户令牌在您的红矿插件,而不是任何其他插件。

有人能建议我一种方法,让用户可以存储和更新他们的用户令牌和插件获取相同的,并使用它来调用apis吗?

首先,这取决于您的插件需要如何验证自己的红地雷。基于您的问题,我假设Redmine只是在您需要存储和使用的用户配置文件设置中提供了一个API密钥,所以我将使用它,但是如果获取所述令牌的方法更复杂,则会变得更加复杂。

因此,假设用户可以从他的配置文件中获取他的API令牌,并且只需要让bot使用它,您可以:

  1. 为用户提供一个命令来设置他们的API令牌,并使用内建持久性存储它: def activate(self):.activate()如果'tokens‘不在self中: self'tokens’= {} @botcmd set_redmine_token(self,msg,args):#参见开发/持久化.#注意事项 #以获得对可变事物的解释。使用self.mutable('tokens')作为令牌: tokensmsg.frm.person = args返回"API令牌集“
  2. 然后,在对redmine进行API调用时,您可以看到文件中是否有用于发出命令的用户的令牌,并使用该令牌,否则会显示错误: @botcmd def do_redmine_thing(self,msg,args):如果msg.frm.person不在self‘token’中:返回“我没有给您的令牌,请用!set_redmine_token设置它”#现在使用#self‘token’中的令牌进行API操作

请注意,以上是一个非常简单的例子。您可能希望使用arg_botcmd而不是普通的botcmd来进行更好的参数解析、进行更多的错误检查等等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41104246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档