【问题标题】:how to create new contacts using xero api?如何使用 xero api 创建新联系人?
【发布时间】:2020-02-13 14:33:59
【问题描述】:

如何使用 API 在 Xero 中创建新联系人?

我已经尝试过这个 API - https://api.xero.com/api.xro/2.0/Contacts 但我总是收到这个错误:“oauth_problem=consumer_key_unknown&oauth_problem_advice=Consumer key was not recognized.”

我不知道如何在 API 中传递客户端 ID 和客户端密码或访问令牌?

在标头中传递参数不起作用 -

curl_setopt($ch, CURLOPT_HTTPHEADER, [ “授权:基本”。 base64_encode('75F16AECC7F749E08D1822B32CD110EB:lJ_h1cG7dvE5xIAXDWyFDcmGQPqtZOlHzfAzw0ImdLPKOxL5'), '内容类型:应用程序/json' ]);

请帮忙

【问题讨论】:

  • 您的问题中似乎包含了您的客户 ID 和密码。请务必删除并重新创建您的客户端,以防止未经授权的访问。
  • 它不是真正的客户 ID 和机密

标签: xero-api


【解决方案1】:

Xero 使用 OAuth2 授权流程。一般来说,您需要:

  • 将 Xero 用户发送到带有您的客户端 ID 的授权 URL,这将导致用户使用代码被重定向到您指定的重定向 uri
  • 使用您的客户端 ID 和密码将此代码交换为访问令牌
  • 向联系人端点发出请求时,将访问令牌用作授权标头中的不记名令牌

Xero Developer docs 中描述了完整的详细信息。

【讨论】:

  • 我已按照developer.xero.com/documentation/oauth2/auth-flow 中提到的所有步骤进行操作。我得到了访问令牌和刷新令牌。在您的授权标头中使用访问令牌作为不记名令牌。还在标题中添加了 xero 租户 ID,但始终显示相同的错误。
  • 您可以使用令牌发布更新后的 curl 请求吗?错误响应是否完全相同?
  • curl_setopt($curl, CURLOPT_HTTPHEADER, [ "授权: Bearer 1fbc811357a1...", 'Content-Type: application/json', 'xero_tenant_id: 66f9473f...' ]);
  • 我用过这个但显示同样的错误。 oauth_problem=consumer_key_unknown&oauth_problem_advice=Consumer%20key%20was%20not%20recognised
  • 如果您收到consumer_key_unknown 错误,则说明您的不记名令牌设置不正确(并且您的请求正在通过旧的 OAuth1.0a 端点,而不是 OAuth2 端点)。这就是你应该调查的方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2020-03-26
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多