2017-05-16 3 views
2

GoogleカレンダーAPIでイベントを挿入しようとしています。私はエラーがない、私は$event->hmtlLinkを持っているが、私が行くとき、Googleは私に "このイベントは存在しない"と言う。ここでGoogleカレンダーの予定が挿入されていますが、存在しません。

は、クライアントとサービスを得るために私のコードです:上の第一言語のprintfは私に良いリンクを送信

function createEvent($eventId, $name, $equipe, $location, $description, $startTimeDate, $endTimeDate, $timeZone){ 
    $startTimeDate = new DateTime($startTimeDate); 
    $startTimeDate = date_format($startTimeDate, DATE_ISO8601); 
    $endTimeDate = new DateTime($endTimeDate); 
    $endTimeDate = date_format($endTimeDate, DATE_ISO8601); 
    $event = new Google_Service_Calendar_Event(array(
     'id' => $eventId, 
     'summary' => join('',array("[",$equipe,"] ",$name)), 
     'location' => $location, 
     'description' => $description, 
     'start' => array(
     'dateTime' => $startTimeDate, 
     'timeZone' => $timeZone, 
    ), 
     'end' => array(
     'dateTime' => $endTimeDate, 
     'timeZone' => $timeZone, 
    ), 
    )); 
    global $service, $calendarId; 
    $event = $service->events->insert($calendarId, $event); 
    printf($event->htmlLink); 
    printf($event->status); 
    printf($event->created); 
} 

、しかし:ここ

putenv("GOOGLE_APPLICATION_CREDENTIALS=" . __DIR__ . "/private/credentials.json"); 

$client = new Google_Client(); 
$client->useApplicationDefaultCredentials(); 
$client->setScopes(SCOPES); 

$service = new Google_Service_Calendar($client); 

$calendarId = "primary"; 

は、私は、イベントを作成するために使用する機能ですオープニング:イベントがありません

第2回「確認済み」

第3回目e good dateTime

同じIDのイベントを挿入しようとすると、このIDが既に存在するとのエラーが表示されます。しかし、カレンダーには何もありません...

私を助けてください! ありがとうございます。

+0

ここで簡単に推測しますが、(資格情報ファイルで)イベントを作成している同じアカウントを使用して、htmlリンクを表示していることを確認してください - 別のGoogleアカウントがある場合は、追加されたイベントを表示するための適切な権限がありません。 –

+0

私は別のアカウントで何も開発したことはありません。私の信用できるところでは、 'client_email'は良いものなので、良いアカウントだと思います。 –

+0

イベントを追加するクレデンシャルがメールアドレス用のものである場合は、これらのクレデンシャルを使用して手動でカレンダーにログインし、ダイレクトリンクを使用せずにそのカレンダーとそれに接続されているイベントを確認できます。また、APIからの直接リンクを取得する方法については、この回答を確認してください。これを使用して、htmlLinkが同じ値を返すことを確認できます:http://stackoverflow.com/a/23469684/463935 –

答えて

0

あなたはここに完全なget-eventsリクエストを投稿していませんが、あなたのリクエストにいくつかのイベントをフィルタリングするいくつかのフィルタがあるかもしれないので、リクエストを送信するとすべてのイベントは含まれません。

例えばその前のDateTimeにすべてのイベントをフィルタリングするTimeMin呼ばDateTimeパラメータは、そこだし、あなたがDateTime.Now.AddYears(1)に設定している場合たとえば、あなたは今から前年にスケジュールされたイベントへのアクセスを取得することはありません。

関連する問題