首页 > 解决方案 > 如何使用 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 响应。我有什么遗漏或做错了吗?

标签: phpwordpressauthorizationxero-api

解决方案


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/


推荐阅读