Javascript 如何获取Yelp Fusion API访问令牌?
我正在使用Yelp的融合API 所有文档都在这里,看起来很简单,但似乎仍然不起作用 这是我要的代币Javascript 如何获取Yelp Fusion API访问令牌?,javascript,json,ajax,api,yelp,Javascript,Json,Ajax,Api,Yelp,我正在使用Yelp的融合API 所有文档都在这里,看起来很简单,但似乎仍然不起作用 这是我要的代币 https://api.yelp.com/oauth2/token?grant_type= OAuth2&client_secret= SECRET&client_id=ID 我收到了这个答复 { "error": { "description": "Bad Request", "code": "CLIENT_ERROR" } } 我重新阅读了文档,它
https://api.yelp.com/oauth2/token?grant_type= OAuth2&client_secret= SECRET&client_id=ID
我收到了这个答复
{
"error": {
"description": "Bad Request",
"code": "CLIENT_ERROR"
}
}
我重新阅读了文档,它说
要获取访问令牌,请对以下端点进行POST调用
使用从前一步获得的客户端id和密码。然后获取
来自响应主体的访问令牌。“
我提交了这个
https://api.yelp.com/oauth2/token?client_id=ID&client_secret= SECRET
我也犯了同样的错误
我错过了什么
提前感谢您有三个问题导致您收到错误的请求
?grant_type= OAuth2
授权类型
。在文档页面上,它们指定只支持客户端\u凭据
,这意味着您必须将其用作值
grant_type字符串要使用的OAuth2授权类型。
目前,仅支持客户端\u凭据
https://api.yelp.com/oauth2/token?client_id=ID&client_secret=SECRET
仍将您的参数作为GET参数发送,因为它们在url查询字符串中。您必须将参数作为POST字段传递,并且传递参数的语法因您使用的服务器端脚本语言而异/oauth2/token
端点不发送访问控制允许来源
头,这意味着您无法使用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;
}
我用邮递员来获取所需的数据,你可以在这里下载- 要获取访问令牌,参数应位于请求正文中,而不是请求URL中
在POSTMAN中,您需要提供以下键/值对: 授权类型:支持客户端凭据。
客户端id:使用Yelp的应用程序的客户端id。
客户端密码:使用Yelp的应用程序的客户端密码 要执行此操作,请将它们输入到身体中。同时单击x-www-form-urlencoded单选按钮
请参阅下面的屏幕截图链接:
然后,您可以在RapidAPI Yelp API上进行测试,以测试一些端点和参数