Zugriff auf die Yelp-API in PHP

8

Ich fange mit Yelp API v3 (Fusion) an. Ich habe eine App erstellt, habe Client ID und Client Secret bekommen.

Ich verstehe, dass ich ein Token von der Yelp-API erhalten und dann mithilfe der Geschäfts-ID json-Daten abrufen muss.

Ich habe den folgenden PHP-Code gefunden:

%Vor%

Ich habe meine ID und mein GEHEIMNIS eingegeben, aber eine leere Seite bekommen. Was fehlt mir noch?

    
santa 13.06.2017, 19:47
quelle

2 Antworten

4

Es gibt 3 Versionen der API, Sie geben nicht an, auf welche Version Sie zielen, V1, V2 oder Yelp Fusion (V3?), aber da V2 gerade in den Ruhestand versetzt wird (z. B. sie Neue Programmierer dürfen sich nicht für ein Zugriffs-Token für V2 anmelden. Ich denke, du meinst Fusion.

Gemäß den Dokumenten beginnt alles mit der Anfrage an Ссылка  Verwenden Sie Ihre client_id und client_secret (die Sie erhalten, wenn Sie eine neue App registrieren), und eine fest codierte grant_type = client_credentials - und Ihr Code tut dies, aber es URL korrekt nicht codieren die client_id und client_secret, die möglicherweise Warum erhalten Sie eine leere Seite (und das an sich bedeutet, dass Sie nicht debuggen mit CURLOPT_VERBOSE - beim Debuggen von Curl-Anforderungen, immer CURLOPT_VERBOSE verwenden - wissen wir nicht, ob es verbunden ist und bekam eine HTTP 204 OK Kein Inhalt, oder a 500 Internal Server Error, oder wenn Ihre Verbindung wurde direkt blockiert, aber CURLOPT_VERBOSE würde es Ihnen sagen.), Wenn Sie das Access_Token von der oauth2 / Token-URL erhalten, kommt es codiert im JSON-Format, verwenden Sie json_decode, um es zu dekodieren.

Wenn Sie dieses Token erhalten haben, setzen Sie für weitere API-Aufrufe den HTTP-Header Authorization: Bearer TOKEN für Authentisierung.

Hier ist mein Code, ich spiele mit der API herum, melde mich an (erhalte ein authorization_token) und bekomme dann Geschäftsinformationen über dentistry-for-kids-and-adults-canyon-country . Leider scheint die Business Search-API defekt zu sein, da sie nur 500 interne Serverfehler für alles, was ich versuche, zurückgibt. Ich benutze auch die hhb_curl von Ссылка als Convenience Wrapper curl (kümmert sich um CURLOPT_VERBOSE und gibt ihm eine Datei, in die Debug-Informationen eingetragen werden, setzt CURLOPT_ENCODING für schnellere Übertragungen, überprüft den Rückgabewert jedes curl_setopt, gibt eine Exception aus, wenn keine der curl-Optionen gesetzt werden konnte und sagt mir genau welche Option konnte nicht gesetzt werden, usw.) - und wenn Sie diesen Code testen möchten, stellen Sie sicher client_id und client_secret zu ersetzen, da die hier geposteten falsch sind (aber die gleiche Länge und allgemeine Struktur haben, generiert durch diesen Code Ссылка )

%Vor%

beachte auch, dass der zweite Parameter für hhb_curl :: __ construct $insecureAndComfortableByDefault heißt - was die Validierung des SSL-Zertifikats () deaktiviert und komprimierte Übertragungen aktiviert (was das Problem sein könnte, google "ssl crime vulnerability") , und ist standardmäßig deaktiviert (in dem Versuch, "standardmäßig sicher" zu sein), aber ich lasse es im Allgemeinen zur Vereinfachung der Entwicklung eingeschaltet.

    
hanshenrik 16.06.2017 06:35
quelle
0

Ich bin mir nicht sicher, warum, aber ich habe verschiedene Fehler bei hhb_.inc.php bekommen, also habe ich selbst etwas zusammengestopft. Es scheint zu funktionieren, falls es andere Novizen gibt, die sich dort herauskämpfen. Aktualisieren Sie einfach client_id und client_secret mit Ihren eigenen Werten. Sie erhalten diese, wenn Sie Ihre App bei Yelp als Entwickler registrieren.

%Vor%
    
santa 06.09.2017 20:43
quelle

Tags und Links