我在网站上运行了一个聊天机器人,我希望能够将flattr整合到其中。它内置在Node中,没有前端,只是使用API与站点进行交互。
我希望能够做这样的事情
注意:机器人的所有命令都以“!”开头
glGenVertexArrays( 2, vao ); // create a vao of size 2
glBindVertexArray( vao[0] ); // we state that we're going to work on the first element in the vao
// p0, p1, ... have been defined somewhere else
GLfloat sommetsCube[] = { p0, p4, p1, p5, p2, p6, p3, p7,
p1, p2, p0, p3, p4, p7, p5, p6 };
glGenBuffers( 1, &vboCube ); // we generate a buffer using data from vboCube (which have been defined somewhere else)
// I really don't get what those lines do
// though i think this has something to do with sending data to the GPU
glBindBuffer( GL_ARRAY_BUFFER, vboCube );
glBufferData( GL_ARRAY_BUFFER, sizeof(sommetsCube), sommetsCube, GL_STATIC_DRAW );
glVertexAttribPointer( locVertex, 3, GL_FLOAT, GL_FALSE, 0, 0 );
glEnableVertexAttribArray(locVertex);
glBindVertexArray(0); // we're no longer working with the first element in the vao
展示用户
我理解这意味着想要接收或赠送flattr的人必须创建帐户
只是寻找一些如何开始这个的指导。
以下是我认为我需要的:
创建应用程序,获取客户端ID和密钥,通过Oauth流并获取Bearer令牌。在此过程中包括!flattr @username
的范围
您的令牌有多长时间到期?我应该经常更新这个令牌吗?
然后我想我只需要使用the flattr thing api端点?用户是否认为你的api中有“东西”? flattr thing
是:id
的秘密还是公开而没有伤害?
用户是否知道他们的ID或者他们能够轻松找到它吗?或者我需要使用Users endpoint来获取该信息吗?这是否意味着增加额外的范围?
这是我理想的情况。在聊天中,所有用户都设置了一个flattr帐户,并通过执行以下操作将bot连接到Flattr:
thing
(如果可以访问,他们可以使用flattr ID)
然后就像我上面提到的那样,他们可以使用!flattr addme [flattr username]
而这就是
谢谢!
答案 0 :(得分:2)
您确实需要API凭据,但'flattr'范围应该足够了。 您需要解决三个问题,识别用户,验证用户身份,然后对URL进行flattring(s)(因为Flattr系统仅适用于URL:s)。
后者很简单,如果您的应用程序/站点为每个用户提供了一个配置文件页面,那就最好了。 像'http://example.com/user/francisc0'。然后,您只需使用该URL调用/ flattr端点。 URL的响应要么必须包含Flattr可用于对Flattr用户进行ID的内容 你必须传递用户ID和flattr请求。阅读自动提交网址:s。 但简而言之,自动提交网址看起来像 https://flattr.com/submit/auto?fid=abc123&url=http%3A%2F%2Fexample.com%2Fuser%2Ffrancisc0
为了识别您的用户,他们需要在聊天中拥有唯一的用户名(或者您可以从用户名中查找的其他独特用户名)。每个用户还必须告诉您的应用程序他们的flattr id是什么。 这可以像用户手动添加其ID的输入字段一样简单,也可以从API中获取它(查看/ user端点)。
现在,为了展平URL,您的应用程序(api客户端)需要作为Flattr用户进行身份验证。作为输入命令“!flattr @username”的Flattr用户。所以我的建议是,当用户想要在聊天中启用flattr时,你可以为他们执行oauth身份验证并保存访问令牌(他们永远不会过期btw)。 当用户在聊天中键入“!flattr @username”时,您将从存储中检索该用户的访问令牌,然后以该用户身份发送flattr请求。
应该是它。
几年前我为IRC做过类似的事情并且效果很好所以它也应该适用于你的用例。
专业提示:避免使用/ thing端点,因为它们很快就会被弃用。 api文档并不是最新的,但这也是很快就会发生变化的。 用户对象很快将包含'idv3'属性,将其用作用户ID而不是'id'。
来源:am Flattr dev。