Podpięcie API

Podpięcie API
PP
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:47
0

Cześć,
Chciałbym do swojej aplikacji podpiąć API Clarifai. Niestety nie bardzo wiem jak sie za to zabrać. Mam już wygenerowany klucz API. Nie wiem teraz jak stworzyć key.json, bo tam oprócz tego klucza api muszą być jeszcze inne dane.
Jak podpinałem API Google to tam mi samo wygenerowało cały pliczek json a tutaj niestety sie tak nie da, albo nie znalazłem nigdzie tej opcji.

Z góry dzięki za pomoc.

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:7 minut
  • Postów:3492
1

Nie korzystałem z tego API ale widzę, że mają fajną dokumentację.
Gotowiec https://github.com/Clarifai/clarifai-php
W dokumentacji też maja od razu przykładu podzielone na języki:
https://docs.clarifai.com/api-guide/authentication
i dla PHP podjesz tylko klucz jako parametr konstruktora:

Kopiuj
use Clarifai\API\ClarifaiClient;

$client = new ClarifaiClient('YOUR_API_KEY');
PP
bardziej mi chodzi o to jak powinien wyglądać plik key.json
PP
dla testu wkleiłem mój API_KEY tutaj $client = new ClarifaiClient('YOUR_API_KEY');, niestety nie działa, a teoretycznie chyba powinno?
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:7 minut
  • Postów:3492
0

Nie analizowałem całego kodu ale w klasie ClarifaiHttpClient do której przekazywany jest ten klucz.
masz połączenie realizowane Curlem i według mnie tu powinien być zwykły string.

Kopiuj
private function makeBaseCurl($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->baseUrl . '/' . $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "Authorization: Key $this->apiKey",
            'Content-Type: application/json',
        ));
        return $ch;
    }
edytowany 2x, ostatnio: jurek1980
PP
czyli w key.json mam tylko w '' umieścić api key?? W ten sposób? 'API_KEY' bez żadnego słowa kluczowego wcześniej?
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:7 minut
  • Postów:3492
0

Spróbuj po prostu podać sam klucz.

Kopiuj
$key  = 'csdcscdsadcsac';
$client = new ClarifaiClient($key);

Nie wiem dokładnie o co Ci chodzi z key.json skoro wszystko wskazuje na to, że to ma być dokładnie otrzymany klucz od dostawcy API. Słowem kluczowym w nagłówku jest Key

Kopiuj
"Authorization: Key $this->apiKey",

Wyszperałem takie coś na SO gdzie mają przykład:
https://stackoverflow.com/questions/45511004/clarifai-curl-image-recognition-intergration?rq=1

edytowany 1x, ostatnio: jurek1980
PP
chodzi mi o to, żeby API_KEY nie był w tym samym pliku co reszta kodu. Jak podam na sztywno API_KEY $client = new ClarifaiClient('API_KEY'); to wszystko działa. Teraz tylko chce go stąd wyrzucić do innego pliku np. json
jurek1980
Aaaa. To w tych klasach masz metody getEnv() i klucz umieszczasz w pliku .env projektu, jak taki masz, lub jako zmienną środowiskową. Popatrz sobie jak działa konstruktor klasy ClarifaiClient.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.