0

現在、Google カレンダー API を使用しています。ユーザーのカレンダーからイベントのリストを取得しますが、現時点ではコードでユーザーのアカウントが指定されています。この変数を作成したくありません (選択したアカウントから EVENTS を取得する必要があります)。

これは私のコードです:

<?php
require_once 'src/Google_Client.php';
require_once 'src/contrib/Google_CalendarService.php';

$client = new Google_Client();
$client->setApplicationName('Tryout for Google Calendar');
// Visit https://code.google.com/apis/console?api=plus to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('myid');
$client->setClientSecret('mysecret');
$client->setRedirectUri('http://localhost/gcal/done.php');
$client->setDeveloperKey('mykey');

$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
  unset($_SESSION['token']);
}

if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}

if ($client->getAccessToken()) {
$minCheck = date(DATE_ATOM);

$eventList = $cal->events->listEvents("phpkay@gmail.com", array('singleEvents' =>                      'true', 'timeMin' => $minCheck));

  print "<h1>Calendar List</h1><pre>" . print_r($eventList, true) . "</pre>";


$_SESSION['token'] = $client->getAccessToken();
} else {
  $authUrl = $client->createAuthUrl();
  print "<a class='login' href='$authUrl'>Connect Me!</a>";
}

?>

これは、ユーザーアカウントを設定する部分です。つまり、「phpkay@gmail.com」です。

$eventList = $cal->events->listEvents("phpkay@gmail.com", array('singleEvents' => 'true', 'timeMin' => $minCheck));

選択したユーザー アカウントを取得するにはどうすればよいですか (ユーザーは、所有している Google アカウントの 1 つを選択してこの APP に使用できる画面が表示されます)、設定された "phpkay@gmail.com" アカウントの代わりにこれを使用できますか?

私の質問が不明確な場合は申し訳ありませんが、これを別の言い方で表現する方法がわかりません。

4

1 に答える 1

0

これは、OAuth 2.0 API を使用して実行できます。以下を含めるだけです:

https://developers.google.com/admin-sdk/directory/v1/reference/users

を OAuth スコープのリストに追加し、認証済みの GET リクエストを次の場所に送信します。

https://www.googleapis.com/oauth2/v2/userinfo

これにより、認証されたユーザーの電子メール アドレスが返されます。これは、 Google API Explorerで試すことができます。

于 2013-05-22T14:38:47.867 に答える