【问题标题】:Using curl to request for Amadeus API access token使用 curl 请求 Amadeus API 访问令牌
【发布时间】:2019-03-23 10:35:37
【问题描述】:

我正在尝试使用 PHP 脚本请求访问令牌。我正在使用 curl 发布我的 API 密钥和秘密,并希望收到包含访问令牌的 JSON 响应。我失败了(我没有得到回应)。我的代码中是否缺少某些内容? 我更喜欢使用 SDK,但 Amadeus 没有用于 php 的 SDK。

$url = ' https://test.api.amadeus.com/v1/security/oauth2/token';
$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, $url);
curl_setopt($curls,  CURLOPT_RETURNTRANSFER, FALSE);
curl_setopt($curls, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curls, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, 'grant_type=client_credentials&client_id={id number}&client_secret={secret}');
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$token = curl_exec($curls);
curl_close($curls);
print_r ($token);

【问题讨论】:

  • curl_getinfo() 是你的朋友。
  • 请确保CURLOPT_POSTFIELDS 不需要进行json_encoded
  • curl_error($curls) 应该告诉你出了什么问题
  • 谢谢你们,你们的意见确实帮助我找到了解决方案。

标签: php api curl access-token amadeus


【解决方案1】:

您在第一行的网址前有一个空格。

你也可以删除一些行:

$url = 'https://test.api.amadeus.com/v1/security/oauth2/token';
$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, $url);
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, 'grant_type=client_credentials&client_id=API_KEY&client_secret=API_SECRET');
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$token = curl_exec($curls);
curl_close($curls);
print_r ($token);

【讨论】:

  • 非常感谢。额外的空间是我的代码中的问题之一。正如您还提到有多余的行,我的第二个(也是最后一个问题)在第 6 行。在我注释掉第 6 行之后,它起作用了:)
猜你喜欢
  • 1970-01-01
  • 2013-02-17
  • 2021-11-27
  • 2018-08-22
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
相关资源
最近更新 更多