2014-01-23 290 views
0

我試圖使用PHP包裝器設在這裏的高層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( 「字段名稱」,$值);

在Highrise中創建一個新的自定義字段。所以如果還沒有一個名爲「Field Name」的自定義字段,它會創建它。如果該字段已經存在,則返回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包裝器,但他們永遠無法獲得自定義字段。

0

爲了使用37signalsHighrise-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內容嗎? –