Estou com uma dúvida mas não sei exatamente aonde seria o melhor local, pois é sobre o Google Calendar e também sobre PHP.
Estou tentando fazer o convite de uma pessoa para um evento no Google Calendar onde é feito a criação do evento sem problemas, porém na parte do convite é retornado o seguinte erro: Fatal error: Uncaught Google\Service\Exception: { "error": { "errors": [ { "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } ], "code": 403, "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } } in D:\amwebagencia\testes-\agendamento-google\vendor\google\apiclient\src\Http\REST.php on line 134. Já fiz pesquisas a respeito desse erro mas até então sem resultados relevantes.
require_once 'vendor/autoload.php';
// Autorização - Está funcionando corretamente
$client = new Google_Client();
$client->setAuthConfig('json-google-calendar/arquivo.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$service = new Google_Service_Calendar($client);
// Criação de evento - Está funcionando corretamente
$calendarId = 'bbb@gmail.com'; // ID da agenda (por padrão, usa a agenda primária)
$evento = new Google_Service_Calendar_Event(array(
'summary' => 'Título do Evento 22',
'description' => 'Descrição do Evento',
'start' => array(
'dateTime' => '2023-06-11T16:02:00',
'timeZone' => 'America/Sao_Paulo',
),
'end' => array(
'dateTime' => '2023-06-11T17:02:00',
'timeZone' => 'America/Sao_Paulo',
),
));
$eventoInserido = $service->events->insert($calendarId, $evento);
echo 'Evento inserido com sucesso. ID do Evento: ' . $eventoInserido->getId();
// Convidar pessoa para evento - Está retornando o erro: Fatal error: Uncaught Google\Service\Exception: { "error": { "errors": [ { "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } ], "code": 403, "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } } in D:\amwebagencia\testes-\agendamento-google\vendor\google\apiclient\src\Http\REST.php on line 134
$eventId = $eventoInserido->getId(); // ID do evento específico
$email = 'xxx@gmail.com'; // E-mail da pessoa que você deseja convidar
$attendee = new Google_Service_Calendar_EventAttendee(array(
'email' => $email,
));
$event = $service->events->get('bbb@gmail.com', $eventId);
$attendees = $event->getAttendees();
$attendees[] = $attendee;
$event->setAttendees($attendees);
$updatedEvent = $service->events->update('bbb@gmail.com', $eventId, $event, array('sendUpdates' => 'all'));
echo 'Pessoa convidada com sucesso para o evento.';
Olá pessoa estou criando um sistema de agendamento porém agora quero fazer a implementação do Google calendar porém meu sistema não usa o composer teria alguma forma de usar a api sem precisar do composer
Bom pessoal estou fazendo uma função para formatar url de rede social,
FACEBOOK, INSTAGRAM & TWITTER, não sei se esta da forma correta em fazer.
Ex: https://www.facebook.com/minha-pagina quero pegar apenas o final que seria minha-pagina
Isso seria tanto no instagram e twitter
Fiz da seguinte forma
<?php
function FormatarUrlRedeSocial($URL){
if (strstr($URL, 'https://facebook.com/') || strstr($URL, 'http://facebook.com/')) {
$UrlRedeSocial = explode('facebook.com/', $URL);
return $UrlRedeSocial[1];
} elseif (strstr($URL, 'http://') || strstr($URL, 'https://')){
$UrlRedeSocial = explode($URL);
$UrlRedeSocial = explode($UrlRedeSocial[1]);
return $UrlRedeSocial[0];
} else {
return $URL;
}
}
?>
Porem quero que seja apenas uma função unica para todos
Tipo
https://www.facebook.com/<?= FormatarUrlRedeSocial($dados['url_facebook']); ?>
https://www.instagram.com/<?= FormatarUrlRedeSocial($dados['url_instagram']); ?>
https://www.twitter.com/<?= FormatarUrlRedeSocial($dados['url_twitter']); ?>
Bom do porque não usar os link´s direto, bom pois em outras parte que vou pegar este nome no final não poderia ter o link completo
Então decide fazer uma função onde não vou precisar criar vários campos na tabela sem necessidades. Espero que possam entender o que preciso.
function getPreco() {
var url = "https://api2.binance.com/api/v3/ticker/price?symbol=ADABNB";
var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
var json = response.getContentText();
var data = JSON.parse(json);
//Logger.log(url);
//Logger.log(response);
//Logger.log(json);
Logger.log(data);
return data.price
}
Ao executar em script.google
17:49:16 Notificação Execução iniciada
17:49:14 Informação {price=0.00433800, symbol=ADABNB}
17:49:17 Notificação Execução concluída
Usando o return data.price o resultado não deveria ser 0.00433800 ?