2016-10-06 3 views
0

Ich versuche, die Yelp-API zu verwenden. v3 verwendet OAuth2, aber ich bin mir nicht sicher über die Verarbeitung aller Daten.OAuth2 und Yelp Zugriff in Ruby

Dies ist der Code, um das Token an den Schlüssel zugeordnet zu bekommen:

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 ist /oauth2/token und ENDPOINT ist https://api.yelp.com.

ich einen Code wie Empfang:

69gSGF4oPNzyd2GTK824wlYOAwX8ibbsdEF5bmPsqUVj22WqK6X5alGRv0cahoXL-W9z0TVHvMxgWZNk2xpwDPJFLKbZBCuDfHQEDImlG6dPajgp23B-NFGzj 

Erstens kann ich sicher sein, mit dem richtigen Token gewährt werden?

Ich bin mir nicht sicher auch über die redirect_uri. Mein Code wird ein Heroku laufen lassen, aber jetzt ist es auf meinem lokalen Rechner.

Kann ich etwas wie :@domain anstelle von local verwenden?

Ich frage dies, weil, wenn Sie eine Anfrage an Yelp senden, es mir immer das gleiche Ergebnis gibt. Ich frage nach Sushi und es gibt fünf Restaurants.

Ich möchte zuerst sicherstellen, dass meine OAuth2-Verarbeitung korrekt ist.

+0

Es ist nicht notwendig für die (mangelnde) Erfahrung zu entschuldigen. Es ist uns egal, ob Sie neu sind, wir wollen nur gut recherchierte und gestellte Fragen. Es ist auch nicht notwendig, und tatsächlich wird abgeraten, Grüße, Abschiedssprüche oder Unterschriften zu verwenden. Stack Overflow ist kein Diskussionsforum, es ist ein Online-Nachschlagewerk, in dem Sie Artikel schreiben, die Probleme lösen. –

Antwort

0

Dieser sollte für Sie arbeiten:

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) 
+0

Ich kann es nicht funktionieren, es scheint, dass ich HTTP.net verwenden muss, aber es erzeugt ein Problem. – Seb

+0

Meine Lösung basiert auf Python. – RZK