多次呼叫后,Podio身份验证失败

时间:2016-11-14 19:02:53

标签: php podio

我已经使用Podio API近一年了,并且很少遇到问题,但我最近遇到了一个我无法弄清楚的问题。我甚至不确定如何测试发生了什么。创建项目时,我有一个脚本webhook,它将向项目发送http GET请求并执行许多功能。该脚本运行得很好并且从未遇到过任何问题,除非我快速连续创建了许多项目(15个左右)。如果我这样做,某个数字将成功完成,然后我会在每次新通话时突然出现以下错误:

s

如果我等了一分钟左右,它就会重新开始工作。

我正在使用用户名和密码进行身份验证。有谁知道发生了什么或如何检查发生了什么? podio.log在这种情况下没有帮助。

(UPDATE) 问题是我正在达到身份验证请求速率限制,因为我没有使用会话管理器。我现在正试图这样做,但有问题。我使用Redis setup的代码如下:

2016-11-14 16:41:14 401 GET /item/514610204
2016-11-14 16:41:14 Reponse: {"error_parameters":{},"error_detail":null,"error_propagate":false,"request":{"url":"http:\/\/api.podio.com\/item\/514610204","query_string":"","method":"GET "},"error_description":"invalid_request","error":"unauthorized"}

给出了以下错误:当没有类范围处于活动状态时,无法访问self :: 我是否在正确的轨道上让会话管理员使用密码验证?注释行发生错误。

(UPDATE) 我终于能够让系统正常运行了。上面的代码是正确的。只需重置服务器(Windows服务器)即可使Redis生效。

2 个答案:

答案 0 :(得分:3)

如果您的脚本在每次创建项目时都对 Podio 进行身份验证,则可能会遇到Podio API对身份验证请求的速率限制。

每次webhook触发脚本时,您是否在生成新的身份验证令牌? The Podio client libraries包括一些可能有用的会话管理的一般文档!

答案 1 :(得分:1)

为了避免达到此限制,您应该使用API​​进行一次身份验证,然后存储oauth并刷新从API返回的令牌。 Redis会做到这一点。然后对所有后续请求使用oauth标记。

可以在这里找到一个例子[1]

您的oauth令牌有效期最多为28天。当它不再有效时,您需要使用首次进行身份验证时收到的刷新令牌获取新的oauth令牌。 [2]

[1] https://developers.podio.com/authentication/username_password

[2] https://developers.podio.com/authentication