我有一个对象,但错误提示我正在对一个非对象进行函数调用

I have an object, but error says I'm making a function call on a non-object

我正在使用 Infusionsoft SDK。我在尝试拨打 API 电话时遇到了障碍。

我进行的任何调用都以相同的 Call to a member function getRefreshToken() on a non-object 错误结束(但并不总是 getRefreshToken())。

当我 var_dump 时,我看到它是一个对象。那么,是什么原因呢?

object(Infusionsoft\Infusionsoft)#182 (13) { ["url":protected]=> string(42) "https://api.infusionsoft.com/crm/xmlrpc/v1" ["auth":protected]=> string(51) "https://signin.infusionsoft.com/app/oauth/authorize" ["tokenUri":protected]=> string(34) "https://api.infusionsoft.com/token" ["clientId":protected]=> string(24) "actual client ID" ["clientSecret":protected]=> string(10) "actual secret key" ["redirectUri":protected]=> string(65) "http://benjamin_redden.dev/wp-content/plugins/ajaxIsForm/auth.php" ["apis":protected]=> array(0) { } ["debug":protected]=> bool(false) ["httpClient":protected]=> NULL ["httpLogAdapter":protected]=> NULL ["serializer":protected]=> NULL ["needsEmptyKey"]=> bool(true) ["token":protected]=> string(24) "actual token" } Fatal error: Call to a member function getRefreshToken() on a non-object in /Users/Krsna/Sites/benjamin_redden/wp-content/plugins/ajaxIsForm/vendor/infusionsoft/php-sdk/src/Infusionsoft/Infusionsoft.php on line 261

这是我从 运行 调用中得到的错误...

var_dump($infusionsoft); $infusionsoft->refreshAccessToken();

function get_those_ids($infusionsoft){
  var_dump($infusionsoft);
  // get the form IDS
  $formIDS = $infusionsoft->webForms()->getMap();

  // make the dropdown
  echo '<select name="infusionsoft_forms_which_form_would_you_like_to_use_" id="infusionsoft_forms_which_form_would_you_like_to_use_">';
  foreach($formIDS as $formID => $formName){
    echo '<option value="'. $formID .'">'. $formName .'</option>';
  }
  echo '</select>';
}

想通了!

我将令牌设置为包含令牌的实际字符串,但显然它宁愿拥有整个对象令牌(包含刷新令牌、重定向 uri、生命周期结束以及所有内容)

所以,它最终变成了 $infusionsoft->setToken($unserializedToken);

而不是 $infusionsoft->setToken($tokenString);

效果很好,直到我尝试将一些信息保存到 WP 中的自定义 post 类型,现在我得到的只是 Guzzle 错误... =(