2014-01-23 4 views
0

Я пытаюсь использовать PHP обертку для Highrise API, расположенного здесь:Высотный API код ошибки 500 Возвращения

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

Да ... Это не проблема. Я успешно использую API для выполнения других задач, и я точно знаю, что я указываю имя моей учетной записи и ключ API. –

ответ

0

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

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

$ человек-> setCustomField ("Field Name", $ значение);

создает новое настраиваемое поле внутри Highrise. Поэтому, если еще нет пользовательского поля с именем «Имя поля», оно создаст его. Если это поле уже существует, оно возвращает ошибку 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"); 
     } 
    } 

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

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"); 
+0

Я абсолютно уверен, что это не так. Я предоставляю имя учетной записи и учетные данные. Я успешно использую API для добавления контактов и заметок.Единственный раз, когда я получаю ошибку, я пытаюсь использовать пользовательские поля. Спасибо за ваш отзыв, хотя! –

+0

Просто для отладки в главном классе в строке 1893 вы можете добавить этот 'var_dump ($ xml);', чтобы просмотреть содержимое xml, созданное вашими входами? –