繁体   English   中英

如何获得Yelp Fusion API访问令牌?

[英]How to get a Yelp Fusion API access token?

我正在使用Yelp的Fusion API。

所有文档都在这里,看起来很简单,但似乎仍然行不通。

https://www.yelp.com/developers/documentation/v3/get_started

这是我要求的令牌。

https://api.yelp.com/oauth2/token?grant_type= OAuth2&client_secret= SECRET&client_id=ID

我收到此回复。

{
  "error": {
    "description": "Bad Request",
    "code": "CLIENT_ERROR"
  }
}

我重新阅读了文档,上面写着

“要获取访问令牌,请使用从上一步获得的客户端ID和密码对以下端点进行POST调用。然后从响应正文中获取访问令牌。”

我提交了这个

https://api.yelp.com/oauth2/token?client_id=ID&client_secret= SECRET

我遇到了同样的错误。

我想念什么?

先感谢您

您遇到三个导致您收到错误请求的问题

  1. 参数值中有空格

     ?grant_type= OAuth2 
  2. 您使用了错误的grant_type 在文档页面上,它们指定仅支持client_credentials ,这意味着您必须将其用作值

    grant_type字符串要使用的OAuth2授权类型。 目前,仅支持client_credentials。

  3. 您使用了错误的请求方法,它必须是POST而不是GET请求

    这些参数应在POST调用中以application / x-www-form-urlencoded格式发送。

    请注意, https://api.yelp.com/oauth2/token?client_id=ID&client_secret=SECRET仍将参数作为GET参数发送,就像它们在url查询字符串中一样。 您必须将参数作为POST字段传递,并且这样做的语法在您使用的服务器端脚本语言上有所不同。

另外,您的请求也需要在服务器端完成,因为/oauth2/token端点不会发送Access-Control-Allow-Origin标头,这意味着您无法使用ajax请求来获取数据。

因此,如果说您使用的是PHP服务器端,则可以使用CURL来获取令牌

$postData = "grant_type=client_credentials&".
            "client_id=YOURCLIENTID&".
            "client_secret=SECRET";
$ch = curl_init();

//set the url
curl_setopt($ch,CURLOPT_URL, "https://api.yelp.com/oauth2/token");
//tell curl we are doing a post
curl_setopt($ch,CURLOPT_POST, TRUE);
//set post fields
curl_setopt($ch,CURLOPT_POSTFIELDS, $postData);
//tell curl we want the returned data
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);

//close connection
curl_close($ch);

if($result){
   $data = json_decode($result);
   echo "Token: ".$data->access_token;
}

我用邮差获取所需的数据,你可以在这里下载- https://www.getpostman.com/

为了获取您的访问令牌,参数应位于请求正文中 ,而不是请求URL中。


在POSTMAN中,您需要提供以下内容作为键/值对:

grant_type:支持client_credentials。
client_id:使用Yelp的应用的客户端ID。
client_secret:使用Yelp的应用程序的客户端密码。

为此,您将它们输入到“正文”中。 同时点击x-www-form-urlencoded单选按钮。
请参阅下面的屏幕快照链接:
如何配置POSTMAN以获取您的Yelp访问令牌


然后,您可以在RapidAPI Yelp API上进行测试,以测试一些端点和参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM