无法通过POST验证以在XERO中添加联系人

时间:2018-10-05 10:04:46

标签: xero-api

我们正在尝试使用PHP与Xero集成。看来我们一直在尝试使用以下代码添加简单的联系人:

到目前为止我们还没有做什么:

  1. 获取未经授权的请求令牌–有效
  2. 重定向用户– Works
  3. 将请求令牌交换为访问令牌–有效
  4. 连接到Xero API – Works
  5. 使用('https://api.xero.com/api.xro/2.0/Contacts')获得联系-作品
  6. 使用('https://api.xero.com/api.xro/2.0/Contacts')进行POST联系-返回错误auth_problem = signature_invalid&oauth_problem_advice = Failed%20to%20validate%20signature

到目前为止,以下代码已用于此post函数。如果任何人都可以在第一步中帮助我们,那将是非常有帮助的。

$url_xero = 'https://api.xero.com/api.xro/2.0/Contacts';

$data = "{ \r\n  Name: HFG Limited  \r\n  }";
$data_json = json_encode($data);

$consumer = new OAuthConsumer($xero_consumer_key, $xero_consumer_secret);
$access_token2 = new OAuthToken($oauth_token_final, $oauth_token_secret_final);

$request = OAuthRequest::from_consumer_and_token($consumer, 
$access_token2,'POST', $url_xero, array('Content-Type: application/json','Content-Length: ' . strlen($data_json)));
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, $access_token2);

$headers = array($request->to_header());

$ch = curl_init();

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url_xero);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$rsp = curl_exec($ch);
$info = curl_getinfo($ch);

$results = json_decode($rsp);

if ($rsp === false) {
throw new Exception(curl_error($ch), curl_errno($ch));
}

0 个答案:

没有答案