谷歌日历api用户使用php定义了id

时间:2018-02-07 17:59:38

标签: php google-calendar-api google-api-php-client

我创建了数百个日历而不是分配用户。我需要定期更新日历,因此我需要为每个日历创建自定义ID。无论我使用什么,它都会以无效ID返回

下面是我在PHP中的脚本     

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


define('APPLICATION_NAME', 'Assignments Calendar');
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . __DIR__ . '/Assignment_Calendars-701dce094981.json');
define('SCOPES', implode(' ', array(
        Google_Service_Calendar::CALENDAR)
));

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(SCOPES);
$calendarServiceAccount = new Google_Service_Calendar($client);
 $calendarId="abcdefghijklmnopqrstuvwxyz1234567890";
$newCalendar = new Google_Service_Calendar_Calendar();
$newCalendar->setSummary("testing");
$newCalendar->setTimeZone('America/Chicago');
$newCalendar->setId($calendarId);
$calendar = $calendarServiceAccount->calendars->insert($newCalendar);

我的错误讯息是

PHP Fatal error:  Uncaught Google_Service_Exception: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid resource id value."
   }
  ],
  "code": 400,
  "message": "Invalid resource id value."
 }
}

无论我将$ calendarId改为它都会得到同样的错误。如果我删除 $ newCalendar-> SETID($ calendarId);它完美地运作

1 个答案:

答案 0 :(得分:0)

您无法分配自定义ID,日历的ID由API定义。请参阅API reference

您必须创建日历,在insert电话后阅读$ calendar-> id值并将其存储在某处以便以任何方式将其链接到用户。