1

我有一个在网站上运行的聊天机器人,我希望能够将 flattr 集成到其中。它内置在 Node 中,没有前端,它只是使用 API 与站点交互。

我希望能够做这样的事情

注意:机器人的所有命令都以“!”开头
!flattr @username讨好用户

我知道这意味着想要接收或提供 flattr 的人必须创建帐户

只是寻找一些关于如何开始的指导。

这是我认为我需要做的:

创建应用程序,获取 Client ID 和 Secret,通过 Oauth 流程并获取 Bearer 令牌。包括flattr thing在这个过程中的范围

您的令牌设置为多久到期?我应该经常更新这个令牌吗?

那我想我只需要使用flattr 的东西api 端点?用户是否在您的 api 中被视为“事物”?是秘密:id还是thing可以公开而无害?

用户是否知道他们的 id 或者他们是否可以轻松找到它?还是我需要使用用户端点来获取该信息?这是否意味着增加一个额外的范围?

这是我理想的情况。在聊天中,所有用户都设置了一个 flattr 帐户,并且可以通过以下操作将机器人连接到 Flattr:(
!flattr addme [flattr username]或者,如果可以访问,他们可以使用 flattr ID)
然后就像我上面提到的那样,他们可以使用!flattr @[username],仅此而已

谢谢!

4

1 回答 1

2

您确实需要 API 凭据,但“flattr”范围应该足够了。你需要解决三个问题,识别用户,认证用户,然后扁平化 URL:s(因为 Flattr 系统只适用于 URL:s)。

后者很容易,最好的办法是您的应用程序/站点为每个用户提供一个个人资料页面。类似'<a href="http://example.com/user/francisc0" rel="nofollow">http://example.com/user/francisc0'。然后,您只需使用该 URL 调用 /flattr 端点。URL 的响应要么必须包含 Flattr 可以用来标识 Flattr 用户的内容,要么您必须将用户 ID 与 flattr 请求一起传递。阅读自动提交 URL:s。但简而言之,自动提交 URL 看起来像 https://flattr.com/submit/auto?fid=abc123&url=http%3A%2F%2Fexample.com%2Fuser%2Ffrancisc0

为了识别您的用户,他们需要在聊天中拥有唯一的用户名(或者您可以从用户名中查找的其他唯一用户名)。每个用户还必须告诉您的应用程序他们的 flattr id 是什么。这可以像用户手动添加他们的 id 的输入字段一样简单,或者您可以从 API 获取它(查看 /user 端点)。

现在为了 flattr 一个 URL,您的应用程序(api 客户端)需要作为 Flattr 用户进行身份验证。作为键入命令“!flattr @username”的 Flattr 用户。所以我的建议是,当用户想要在聊天中启用 flattr 的功能时,您可以为他们执行 oauth 身份验证并保存访问令牌(顺便说一句,它们永远不会过期)。当用户在聊天中键入“!flattr @username”时,您从存储中检索该用户的访问令牌,然后以该用户的身份发送 flattr 请求。

应该是这样的。

几年前我为 IRC 做了类似的事情,它工作得很好,所以它也应该适用于你的用例。

专业提示:避免使用 /thing 端点,因为它们很快就会被弃用。api 文档并不是最新的,但也很快就会发生变化。用户对象将很快包含一个“idv3”属性,将其用作用户 ID 而不是“id”。

资料来源:am Flattr dev。

于 2016-10-18T06:45:21.753 回答