В настоящее время я создаю автоматизацию умного дома. Я использую Laravel PHP в своем облаке. Я закончил аутентификацию Oauth2 и отправку команд из приложения Google Home на свои устройства (я использовал MQTT для связи со своими устройствами).
Я уже успешно реализовал SYNC
, QUERY
и EXECUTE
. и теперь я хочу синхронизировать комнаты и структуры, для которых я должен использовать API Homegraph. Есть ли кто-нибудь, кто может помочь мне интегрировать Homegraph APi в мой Smarthome, потому что я столкнулся с проблемой здесь, в аутентификации JWT? Мое приложение основано на laravel, поэтому я не могу следовать примерам кода. Я пробовал так:
$jsonFile = json_decode(file_get_contents('./key.json'), true);
$client = new \GuzzleHttp\Client();
$payload = [
"iss" => $jsonFile['client_email'],
"scope" => "https://www.googleapis.com/auth/homegraph",
"aud" => "https://accounts.google.com/o/oauth2/token",
"iat" => date("h:i:sa"),
"exp" => date("h:i:sa", strtotime('+1 hour'))
];
$jwt = JWT::encode($payload, $jsonFile["private_key"], 'RS256');
$header = array("Authorization" => "Bearer " . $jwt, "Content-Type" => "application/json");
try {$response = $client->get( "https://accounts.google.com/o/oauth2/token", [
"headers" => $header]);
} catch (\Exception $e) {
dd($e);
}
я получаю сообщение об ошибке
Client error: `GET https://accounts.google.com/o/oauth2/token` resulted in a `404 Not Found` response:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, w (truncated...)
я перехожу по этому http-сообщению по ссылке
GET
, но, вероятно, хотите использовать запросPOST
. - person Nick Felker   schedule 27.01.2020POST
и получил эту ошибкуClient error: `POST https://accounts.google.com/o/oauth2/token` resulted in a `400 Bad Request` response: { "error": "unsupported_grant_type", "error_description": "Invalid grant_type: " }
Я использую библиотеку firebase/php-jwt. - person P7rck   schedule 28.01.2020