我在尝试向 Salesforce.com 发送经过身份验证的 GET 请求时收到错误 (INVALID_SESSION_ID)。
这是整个插件,它基本上只是将 REST 响应的主体输出到具有 [MembershipTables] 短代码的任何页面:
if (!class_exists('WP_Http')) {
include_once(ABSPATH . WPINC . '/class-http.php');
}
// This is obviously the real username
$username = 'xxxx@xxxx.xxx';
// And this is obviously the real password concatonated with the security token
$password = 'xxxxxxxxxxxxxx';
function getMembershipTables() {
$api_url = 'https://na15.salesforce.com/services/apexrest/directory';
$headers = array('Authorization' => 'Basic ' . base64_encode("$username:$password"));
$args = array('headers' => $headers);
$request = new WP_Http;
$result = $request->request($api_url, $args);
$body = $result['body'];
echo "$body";
}
add_shortcode( 'MembershipTables', 'getMembershipTables' );
我应该注意,我可以使用 Curl 成功地访问此端点,尽管我使用从 Salesforce 获得的会话令牌,使用旧的 SOAP API 来保持它等效(即,没有客户端 ID/秘密)。
我对 WP_Http 做错了吗?或者我不能不使用基本身份验证对 salesforce.com 请求进行身份验证?
谢谢。