创建活动后,为什么Google日历活动邀请邮件未发送给那里的来宾? [英] Why google calendar event invite mail not send to there guests when event is create?

查看:136
本文介绍了创建活动后,为什么Google日历活动邀请邮件未发送给那里的来宾?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过他们的电子邮件向多个用户发送Google日历事件电子邮件.当前已创建事件,但邮件未发送给我们在此事件中添加的来宾用户.因此,要在事件创建后向访客用户发送电子邮件.那么,您能帮我为什么为什么不发送邮件吗?

I want to send google calendar event email to multiple users by their emails. Currently event is created but mail not send to guest users that we have added in this event. So want to send an email to guest users when event is created. So can you please help me that why mail is not send?

require __DIR__ . '/vendor/autoload.php';

/*if (php_sapi_name() != 'cli') {
    throw new Exception('This application must be run on the command line.');
}*/

/**
 * Returns an authorized API client.
 * @return Google_Client the authorized client object
 */
function getClient()
{
    $client = new Google_Client();
    $client->setApplicationName('Google Calendar API PHP Quickstart');
    $client->setScopes(Google_Service_Calendar::CALENDAR);
    $client->setAuthConfig(__DIR__ .'/credentials.json');
    $client->setAccessType('offline');
    $client->setPrompt('select_account consent');

    // Load previously authorized token from a file, if it exists.
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    $tokenPath = 'token.json';
    if (file_exists($tokenPath)) {
        $accessToken = json_decode(file_get_contents($tokenPath), true);
        $client->setAccessToken($accessToken);
    }

    // If there is no previous token or it's expired.
    if ($client->isAccessTokenExpired()) {
        // Refresh the token if possible, else fetch a new one.
        if ($client->getRefreshToken()) {
            $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
        } else {
            // Request authorization from the user.
            $authUrl = $client->createAuthUrl();
            printf("Open the following link in your browser:\n%s\n", $authUrl);
            print 'Enter verification code: ';
            $authCode = trim(fgets(STDIN));

            // Exchange authorization code for an access token.
            $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
            $client->setAccessToken($accessToken);

            // Check to see if there was an error.
            if (array_key_exists('error', $accessToken)) {
                throw new Exception(join(', ', $accessToken));
            }
        }
        // Save the token to a file.
        if (!file_exists(dirname($tokenPath))) {
            mkdir(dirname($tokenPath), 0700, true);
        }
        file_put_contents($tokenPath, json_encode($client->getAccessToken()));
    }
    return $client;
}


// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Calendar($client);

// Print the next 10 events on the user's calendar.
$calendarId = 'primary';
$optParams = array(
  'maxResults' => 10,
  'orderBy' => 'startTime',
  'singleEvents' => true,
  'timeMin' => date('c'),
);
$results = $service->events->listEvents($calendarId, $optParams);
$events = $results->getItems();

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Test Event',
  'location' => 'Test Event',
  'description' => 'This is my test description',
  'start' => array(
    'dateTime' => '2020-05-21T04:02:00-04:00',
    'timeZone' => 'Asia/Kolkata',
  ),
  'end' => array(
    'dateTime' => '2020-05-22T16:05:00-07:00',
    'timeZone' => 'Asia/Kolkata',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=1'
  ),
  'attendees' => array(
    array('email' => 'lorit12866@frost2d.net'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event, ['sendUpdates' => 'all']);
//$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

提前谢谢!

推荐答案

如果您的问题与参与者在活动开始前24小时未收到提醒有关:

请注意,覆盖默认提醒仅适用于事件创建者.

Mind that the overwriting the default reminders only works for the event creator.

您可以在私人事件属性:

某些属性是私有的,例如提醒,colorId,透明度, 或extendedProperties.private属性.这些属性是 由与会者的设置控制,而不由组织者控制 日历.

Some properties are private, such as reminders, colorId, transparency, or the extendedProperties.private property. These properties are controlled by the attendee's settings and not by the organizer calendar.

换句话说,与会者将根据其日历中的设置接收(或不接收)提醒,您不能在其上强加提醒.

In other words, the attendees will receive (or not receive) the reminders according to their settings in their calendar, you cannot force a reminder on them.

如果您的问题与创建警报时与会者未收到通知有关:

  • 请注意,您指定了过去的事件开始和结束日期
  • 仅当您创建将来发生的事件时,才会发送通知

这篇关于创建活动后,为什么Google日历活动邀请邮件未发送给那里的来宾?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆