我正在尝试使用Yelp API。 v3正在使用OAuth2,但我不确定所有数据的处理。
这是获取与密钥关联的令牌的代码:
client = OAuth2::Client.new( ENV[ 'YELP_APP_ID' ],
ENV[ 'YELP_APP_SECRET' ],
:token_url => ENV[ 'YELP_OAUTH2_TOKEN_URL' ],
:site => ENV[ 'YELP_ENDPOINT_URL' ],
:access_token_method => :post,
:grant_type => :client_credentials)
puts("this is my blabla #{client}")
code = client.auth_code.authorize_url(:redirect_uri => "http://localhost:4000")
token = client.auth_code.get_token(code, :redirect_uri => "http://localhost:4000")
puts("this is my blabla #{token.token}")
OAuth2::AccessToken.new(client, token.token)
TOKEN_URL
为/oauth2/token
,ENDPOINT
为https://api.yelp.com
。
我收到的代码如下:
69gSGF4oPNzyd2GTK824wlYOAwX8ibbsdEF5bmPsqUVj22WqK6X5alGRv0cahoXL-W9z0TVHvMxgWZNk2xpwDPJFLKbZBCuDfHQEDImlG6dPajgp23B-NFGzj
首先,我能确定获得正确的令牌吗?
我也不确定redirect_uri
。我的代码将运行Heroku,但现在它在我的本地机器上。
我可以使用:@domain
代替local
吗?
我问这个是因为,当向Yelp发送请求时,它总是给我相同的结果。我要求寿司,它送回五家餐馆。
我首先要确保我的OAuth2处理正确。
答案 0 :(得分:0)
这个适用于你:
app_id = "Your APP ID HERE"
app_secret ="Your APP secret here"
import requests
def get_yelp_token(app_id, app_secret):
payload = {'grant_type': 'client_credentials', 'client_id': app_id, 'client_secret': app_secret}
file1 = requests.post('https://api.yelp.com/oauth2/token?', params = payload)
print file1.text
get_yelp_token(app_id, app_secret)