我第一次尝试使用ActiveCollab API。我不得不使用StackOveflow来弄清楚如何获取API令牌,因为文档不会告诉我这个。
以下是我的代码:
/* GET INTENT */
$url = 'https://my.activecollab.com/api/v1/external/login';
$fields = array(
'email' => "email@email.com",
'password' => "****"
);
$intent = curl_post_connector($url, $fields);
$intent = $intent->user->intent;
/* GET TOKEN */
$url = 'https://app.activecollab.com/my_app_id/api/v1/issue-token-intent';
$fields = array(
'intent' => $intent,
'client_name' => 'My App Name',
'client_vendor' => 'My Company Name'
);
$token = curl_post_connector($url, $fields);
$token = $token->token;
以上所有内容都能正常运行并获得令牌。我觉得非常奇怪的是我必须使用API v1来实现这一点,而ActiveCollab网站上的文档并未提及API v5的任何URL。看起来这就是StackOverflow所采用的方法。
现在使用令牌,我尝试获取项目列表:
/* GET PROJECT */
$url = 'https://app.activecollab.com/my_app_id/api/v1/users';
$headers = array (
"X-Angie-AuthApiToken" => $token
);
$projects = curl_get_connector($url, $headers);
var_dump($projects);
但这不起作用。没有返回错误 - 它会因某种原因返回一系列语言!我不想在这里粘贴大量的json对象,所以我会将你链接到它的照片:https://www.screencast.com/t/7p5JuFB4Gu
更新:
尝试使用SDK时,它会一直运行,直到我尝试获取令牌(这与我没有SDK的情况一样)。我收到服务器错误500,在查看日志时,它说:
/home/working/public_html/ac/index.php(21): ActiveCollab\SDK\Authenticator\Cloud->issueToken(123456789)
#1 {main}
thrown in /home/working/public_html/ac/SDK/Authenticator/Cloud.php on line 115
这是Cloud.php的第115行:
throw new InvalidArgumentException("Account #{$account_id} not loaded");
老实说,我认为我做错了什么......我的帐户ID一定有问题。
只是为了踢,我注释掉那一行,错误消失了,页面加载正常 - 除了现在我没有令牌......