我正在尝试使用Flattr REST-API版本1(不是beta v2)编写一个新的应用程序。应用程序首先获得一个请求令牌,这似乎可以正常工作。但是我遇到了一个验证用户身份的问题。为身份验证创建的链接如下所示:
https://api.flattr.com/oauth/authenticate?access_scope=read,click&oauth_token=MY_REQUEST_TOKEN
点击链接似乎一切正常。显示了有关应用程序和请求范围的信息,但单击"Authenticate",没有pin码,但https://flattr.com/apps/pincode/MY_REQUEST_TOKEN
出现以下错误:
出问题了。请再试一次
但是现在应用程序在用户的授权应用程序列表中,尽管如果用户无法获得pin码,这并没有真正帮助…
应用类型设置为客户端。这是我第一次尝试使用API,所以我不确定我是否错过了什么重要的东西?如果你能帮忙,我会很感激的。
作为更新:我们最终更改为API v2。为我们的应用程序获得授权感觉有点笨拙,因为我们将重定向设置为某些网页,在那里我们显示返回的代码,并让用户将其复制粘贴到我们的客户端应用程序中……我们创建了自己的pincode-flow:/
如果可能,请使用v2 api,它使用oauth2 +承载令牌。
但是,新的API不支持使用pincode流进行身份验证。
正如Maike所说,这可能是一个再次出现的错误:(我将创建一个内部bug单,并尝试修复它。
pincode不是计划中的功能。您可以使用oauth2"隐式授权"对资源所有者进行身份验证。目前还没有文档说明,但这是可能的。
当你做请求https://flattr.com/oauth/authorize时,你传递response_type token
而不是code
。这将在回调URL中附加一个access_token片段。在您的http客户端中,可以从服务器捕获302并解析片段中的access_token。
所有这些都需要在你的应用程序中有一个http客户端,你可以控制你的应用程序中的流。