php - 如何使用 wp_remote_post() 设置 Xero 授权标头
问题描述
我正在尝试使用 Xero API 在我的 WordPress 网站上发送发票电子邮件。但我不确定如何设置授权标头我尝试了以下操作:
$args = array(
'headers' => array(
'Content-Type: application/x-www-form-urlencoded',
'Authorization' => 'Basic ' . base64_encode('myClientID' . ':' . 'myClientSecret')
),
);
$response = wp_remote_post('https://api.xero.com/api.xro/2.0/Invoices/2dfa4120-1fd2-4e67-927e-c16ac821226c/Email', $args);
print_r($response);
这给了我未经授权的 404 响应。我有什么遗漏或做错了吗?
解决方案
Authorization 标头实际上需要设置有效的 access_token,而不是 id / secret 组合。您可以在此处阅读有关获取令牌所需的代码流的更多信息:https ://developer.xero.com/documentation/oauth2/auth-flow
如果您熟悉 PHP,可以在此处查看 PHP SDK 示例应用程序中的代码:https ://github.com/XeroAPI/xero-php-oauth2-app
您的目标是将发票电子邮件发送到动态组织,还是只是从您自己的个人组织发送发票?
幸运的是(或不幸)明年初,我们将拥有此嵌入式 access_token 的选项 - 但如果您想在此期间进行设置,您将需要从用户流生成访问令牌,然后设置后端机制以具有它在使用前被刷新,我在这个 youtube 视频中解释:https ://www.youtube.com/watch?v=Zcf_64yreVI
有关“机器 2 机器”集成(即 client_credentials OAuth2.0 授权)的更多信息 https://developer.xero.com/announcements/custom-integrations-are-coming/
推荐阅读
- python-3.x - pyqt连接信号运行功能时无法更新按钮文本
- hibernate - jpa @ManyToOne 多个实体
- php - 无法使用 Gmail 发送邮件
- vba - 关闭时的消息框仅在文本更改时显示
- python - 没有 Jupyter Notebook 的数据框的 Python Pandas 条件格式
- r - 通过 data.table 合并具有相同名称组的数据
- jxbrowser - 将 jxbrowser 设置为默认浏览器而不是 IE/Firefox/Chrome
- c++ - 如何编写简单的 CGAL 代码来网格化 2d 矩形?
- reactjs - 需要身份验证的路由以另一种方式处理(PrivateRoutes)
- powershell - Powershell:无法索引到空数组错误