Highrise API возвращает код ошибки 500

Я пытаюсь использовать PHP Wrapper для Highrise API, расположенного здесь:

https://github.com/ignaciovazquez/Highrise-PHP-Api

Мне нужно установить настраиваемое поле для объекта HighrisePerson. Согласно кодексу это должно быть довольно просто...

$person->setCustomField("Field Name", $value); // Pulled almost straight out of the documentation

К сожалению, когда я пытаюсь сохранить это обратно в Highrise, используя $person->save(); Я получаю следующую ошибку:

Uncaught exception 'Exception' with message 'API for Person returned Status Code: 500 Expected Code: 200'

Так что ошибки нет в коде... Highrise просто не принимает настраиваемое поле. Есть идеи, почему это так?

2 ответа

Решение

Хорошо... я понял это...

В API следующее:

$ person-> setCustomField ("Имя поля", $value);

создает новое настраиваемое поле в Highrise. Поэтому, если пользовательского поля с именем "Имя поля" еще нет, оно будет создано. Если это поле уже существует, оно возвращает ошибку 500.

Насколько я знаю, нет способа установить значение существующего поля с помощью этой оболочки. Вы можете создавать только новые поля, что является своего рода рывком.

Я нашел вилку на той обертке, которая мне очень подходит. Это размещено здесь: 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");
        }
    }

Я надеюсь, что это поможет кому-то еще в будущем, кто сталкивается с той же проблемой. Я обнаружил раздвоенную оболочку PHP из другого вопроса о переполнении стека, но они так и не смогли заставить работать настраиваемые поля.

Чтобы использовать 37 сигналов через 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");
Другие вопросы по тегам