我正在尝试将PHP Wrapper用于此处的Highrise API:
https://github.com/ignaciovazquez/Highrise-PHP-Api
我需要为HighrisePerson对象设置自定义字段。根据代码,这应该非常简单......
$person->setCustomField("Field Name", $value); // Pulled almost straight out of the documentation
不幸的是,当我尝试使用$person->save();
将其保存回高层时,我收到以下错误:
Uncaught exception 'Exception' with message 'API for Person returned Status Code: 500 Expected Code: 200'
因此错误不在代码中...... Highrise只是不接受自定义字段。有什么想法为什么?
答案 0 :(得分:0)
要使用37signals整个Highrise-PHP-Api,您应该提供帐户名称和访问令牌;
$hr = new HighriseAPI();
$hr->setAccount("accountname");
$hr->setToken("token");
然后你可以执行你的其他功能
$person->setCustomField("Field Name", $value);
如果你仔细查看这个api的测试,你会看到;
if (count($argv) != 3)
die("Usage: php users.test.php [account-name] [access-token]\n");
答案 1 :(得分:0)
好的......我想通了......
在API中有以下内容:
$ person-> setCustomField(“Field Name”,$ value);
在Highrise中创建一个新的自定义字段。因此,如果还没有名为“Field Name”的自定义字段,则会创建它。如果该字段已存在,则返回500错误。
据我所知,无法使用该包装器设置现有字段的值。你只能创建新的字段,这是一种jank。
我找到了一个对我来说非常好的封装器。它在这里托管:https://github.com/AppSaloon/Highrise-PHP-Api
这个用法令人困惑,花了一些时间才弄明白。
基本上你想搜索Highrise中的所有自定义字段。找到想要的那个后,为它指定必要的值......所以代码如下所示:
// Load up all the custom fields out of Highrise
$cfields = $highrise->findAllCustomfields();
// Search each custom field until we find the "Field Name" one. When we do, add it to our Highrise Person.
foreach ($cfields as $c) {
if ($c->getSubjectFieldLabel() == "Field Name")
{
// Assign that custom field to the person
$highrisePerson->addCustomfield($c, "Field Value");
}
}
我希望这可以帮助遇到同样问题的其他人。我从另一个Stack Overflow问题中发现了分叉的PHP包装器,但他们从来都无法使自定义字段工作。