我正在尝试调用一个名为Wave的API,我以前用过cURL,但从来没有用过GRAPHQL查询。我想知道在使用cURL时下面的代码有什么问题。我得到一个错误错误请求下面是我的代码示例。
这就是API cURL
curl -X POST "https://reef.waveapps.com/graphql/public" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "query": "query { user { id defaultEmail } }" }'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://reef.waveapps.com/graphql/public');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "query": "query { user { id defaultEmail } }');
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Bearer 1212121';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump($result);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
任何帮助都是有帮助的。
6条答案
按热度按时间xu3bshqb1#
对于那些希望在没有第三方库的情况下查询GraphQL服务的人,我基本上采用了Brian的代码,并针对我已经为之编写了Node.js代码的GraphCMS服务进行了测试。
所有的工作都很好。auth令牌是GraphCMS提供的一个很长的字符串,只需要在头部传递。所以没有真实的棘手的身份验证过程-只要你有令牌。
f45qwnt82#
我可以推荐使用https://github.com/softonic/graphql-client,它对我们来说效果很好。
kwvwclae3#
一种更简单的方法是使用API平台。我经常使用Postman,该平台具有在应用程序的GraphQl工具部分中为GraphQL请求给予PHP cURL代码的功能。
ffx8fchx4#
您可以创建自己的客户端,传递您想要的任何中间件:
关于如何使用中间件构建Guzzle客户端的示例,您可以查看以下内容:https://github.com/softonic/guzzle-oauth2-middleware/blob/master/src/ClientBuilder.php
qlvxas9a5#
如果没有身份验证
您可以使用file_get_contents代替curl
在graphql查询参数中使用json;
vc9ivgsu6#
有点晚了,但我做了这个代码