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

如何在PHP的cURL中为FXHash GraphQL API设置变量

整合GraphQL排序参数到PHP cURL请求的解决方案

完整修改后的代码

$url = 'https://api.fxhash.xyz/graphql';    

$curl = curl_init();

// 带变量的GraphQL查询
$queryData = 'query Listings($sort: ListingsSortInput) {
  listings(sort: $sort) {
    amount
    createdAt
    price
    issuer {
      name
    }
    objkt {
      name
    }
  }
}';

// 定义排序参数(用PHP数组更易维护)
$variables = [
    'sort' => [
        'createdAt' => 'DESC'
    ]
];

// 组装GraphQL请求核心数据
$data = [
    "query" => $queryData,
    "variables" => $variables
];

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'Content-Type: application/json'
]);

// 执行请求并处理结果
$response = curl_exec($curl);
if(curl_errno($curl)){
    echo 'CURL错误:' . curl_error($curl);
}
curl_close($curl);

$result = json_decode($response, true);
print_r($result);

关键修改说明

  • 替换查询语句:将原无参数的listings查询替换为带$sort变量的查询,同时修正字段名createdat为API要求的createdAt,避免字段匹配失败。
  • 添加变量参数:GraphQL POST请求需同时传递query和variables字段,这里用PHP数组定义排序参数,再通过json_encode()转换为JSON格式,比手动拼接JSON字符串更安全。
  • 简化代码结构:移除了原代码中冗余的数组初始化语句,让逻辑更清晰。

可选:使用原$options变量的方式

如果坚持使用你定义的$options JSON字符串,可将$variables替换为:

$options = '{
  "sort": {
    "createdAt": "DESC"
  }
}';
$variables = json_decode($options, true);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:35:16