跑道PHPAPI认证
Podio PHP API authentication
我对跑道PHPAPI身份验证有一个困惑。如果没有以下致命错误,我将无法完成某件事。我这样做:Podio::authenticate_with_password('aaa', 'bbb');
我明白了:PHP Fatal error: Uncaught PodioRateLimitError: "You have hit the rate limit. Please wait 300 seconds before trying again"
我的系统处理分为很多空间的复杂关系,这就是为什么我创建了一个“主”帐户,它在每个目标空间中都具有管理员的角色。
每次调用 webhook 时,我都会使用“master”帐户进行身份验证(由于同一脚本中的多重关系,使用应用程序进行身份验证需要大量工作)。
多次调用同一个 webhook,但在不同的上下文中。
如何避免每次调用我的 webhook 时都超出速率限制?我尝试了 OAuth 2,但是 Podio 文档对我的情况没有帮助。没有尝试对我有用。
您是否有办法保留 memory/database 身份验证数据,以便能够将其用于来自多个 webhook 调用的每个 password
身份验证?
非常感谢任何帮助!
解决方案
我在跑道上发现了一些有趣的东西PHP API class:
这是我所做的:
// Set user API key
Podio::setup('user-key', 'wejt9wetwerith34rtfhwetu34hwerud);
// Init refresh_token variable (avoid PHP warning if any refresh_token found in database)
$refresh_token = null;
// Get refresh_token from database if exists
$refresh_token = REFRESH_TOKEN_FROM_DATABASE;
// Authenticate
try{
// Authenticate with refresh token stored in database
Podio::authenticate( 'refresh_token', array( 'refresh_token' => $refresh_token ) );
}
// Authentication failed, request new refresh_token
catch ( Exception $ex ) {
Podio::authenticate_with_password( 'aaa', 'bbb' );
// Get Oauth data including refresh token
$oauth = Podio::$oauth;
// Authenticate with refresh token
Podio::authenticate( 'refresh_token', array( 'refresh_token' => $oauth->refresh_token ) );
// Store $oauth->refresh_token in database for next webhook call...
}
非常重要 在您的脚本中使用相同的用户 API 密钥以避免验证速率限制破坏,因为 refresh_token
链接到用户 API 用于发出请求的密钥。
跑道文档:
- 对于身份验证(一般):
https://developers.podio.com/authentication
- 对于php
身份验证:http://podio.github.io/podio-php/authentication/
- 对于php会话管理:
http://podio.github.io/podio-php/sessions/
答案在上面原始 post 的 SOLUTION 部分描述。
我对跑道PHPAPI身份验证有一个困惑。如果没有以下致命错误,我将无法完成某件事。我这样做:Podio::authenticate_with_password('aaa', 'bbb');
我明白了:PHP Fatal error: Uncaught PodioRateLimitError: "You have hit the rate limit. Please wait 300 seconds before trying again"
我的系统处理分为很多空间的复杂关系,这就是为什么我创建了一个“主”帐户,它在每个目标空间中都具有管理员的角色。
每次调用 webhook 时,我都会使用“master”帐户进行身份验证(由于同一脚本中的多重关系,使用应用程序进行身份验证需要大量工作)。
多次调用同一个 webhook,但在不同的上下文中。
如何避免每次调用我的 webhook 时都超出速率限制?我尝试了 OAuth 2,但是 Podio 文档对我的情况没有帮助。没有尝试对我有用。
您是否有办法保留 memory/database 身份验证数据,以便能够将其用于来自多个 webhook 调用的每个 password
身份验证?
非常感谢任何帮助!
解决方案
我在跑道上发现了一些有趣的东西PHP API class:
这是我所做的:
// Set user API key
Podio::setup('user-key', 'wejt9wetwerith34rtfhwetu34hwerud);
// Init refresh_token variable (avoid PHP warning if any refresh_token found in database)
$refresh_token = null;
// Get refresh_token from database if exists
$refresh_token = REFRESH_TOKEN_FROM_DATABASE;
// Authenticate
try{
// Authenticate with refresh token stored in database
Podio::authenticate( 'refresh_token', array( 'refresh_token' => $refresh_token ) );
}
// Authentication failed, request new refresh_token
catch ( Exception $ex ) {
Podio::authenticate_with_password( 'aaa', 'bbb' );
// Get Oauth data including refresh token
$oauth = Podio::$oauth;
// Authenticate with refresh token
Podio::authenticate( 'refresh_token', array( 'refresh_token' => $oauth->refresh_token ) );
// Store $oauth->refresh_token in database for next webhook call...
}
非常重要 在您的脚本中使用相同的用户 API 密钥以避免验证速率限制破坏,因为 refresh_token
链接到用户 API 用于发出请求的密钥。
跑道文档:
- 对于身份验证(一般): https://developers.podio.com/authentication
- 对于php 身份验证:http://podio.github.io/podio-php/authentication/
- 对于php会话管理: http://podio.github.io/podio-php/sessions/
答案在上面原始 post 的 SOLUTION 部分描述。