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 ?
O site de um cliente da agência foi hackeado e através de um plugin instalado, gerou uma série de páginas aleatórias com alfabetos dos mais diversos.
Retirei todos os links vindos desse plugin, no entanto, um link ainda permanece nas buscas embora eu tenha já solicitado a remoção na ferramenta de remover url's do Google e adicionado o mesmo em disallow no robots do site.
o link é esse:
Aparece dessa maneira:
O curioso é que embora a url esteja dessa maneira e na serp fique da forma acima, o link direciona direto para a home. Alguém poderia me dar um help nisso?