You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel PHP调用Finerworks API凭证验证失败问题求助

Troubleshooting "Missing or unauthorized api credentials" Error with Finerworks API

Let's walk through fixing this credential issue with your Finerworks API request. The error message clearly points to a problem with how your credentials are being sent or their validity, so here are the key steps to resolve it:

1. Verify Your Credentials Are Valid & Correct

First, double-check your web_api_key and app_key:

  • Ensure you've copied them exactly from your Finerworks account dashboard—no extra spaces, missing characters, or typos. Even a single wrong character will trigger this error.
  • Confirm these keys are intended for the V3 API (you’re calling the v3/test_my_credentials endpoint) and that your account is active with no restrictions or suspensions.

2. Validate the Request Data Structure

Looking at your code, you’re wrapping credentials inside a credentials object:

$data1 = array( 'web_api_key' => '***', 'app_key' => '***' );
$data2['credentials'] = $data1;

But it’s possible the Finerworks V3 API expects credentials to be at the root level of the JSON payload, not nested under credentials. Let’s debug your outgoing request to confirm:

Add this line right before curl_exec to see exactly what JSON you’re sending:

$postPayload = json_encode($data2);
echo "Sent JSON: " . $postPayload;

If the API expects web_api_key and app_key directly in the root, your current payload will look like {"credentials":{"web_api_key":"***","app_key":"***"}}—which might not match their required format.

Corrected Code (If Root-Level Credentials Are Required)

If the API expects root-level parameters, adjust your code to send credentials directly:

// Send credentials at the root, not nested
$data = array(
    'web_api_key' => 'your-valid-web-api-key',
    'app_key' => 'your-valid-app-key'
);

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.finerworks.com/v3/test_my_credentials",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30000,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode($data),
    CURLOPT_HTTPHEADER => array(
        "accept: */*",
        "content-type: application/json",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    print_r(json_decode($response));
}

3. Check for HTTP Header Issues

You already have the correct Content-Type: application/json header, which is critical for sending JSON payloads. Double-check that no other headers are interfering (e.g., accidental extra spaces in header values).

4. Reach Out to Finerworks Support

If you’ve confirmed your credentials are valid and the payload structure matches their API docs, the issue might be on their end:

  • Your keys might not have permissions for the test_my_credentials endpoint.
  • There could be a delay in key activation after generating them.

Contact their support team to verify your key status and endpoint access.


内容的提问来源于stack exchange,提问作者Nadeem Ijaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:28:03