1

私の質問は非常に単純です。PHP スクリプトで Google Calendar API を使用しています。

スクリプトは機能していますが、常にアプリを承認する必要があるため、cron で実行できません。

私がやりたいことをする方法はありますか?

これが私のコードです:

<?php
require_once 'google/Google_Client.php';
require_once 'google/contrib/Google_CalendarService.php';
session_start();


$client = new Google_Client();
$client->setApplicationName("Google Calendar PHP Starter Application");
$client->setClientId([MY APP ID]);
$client->setClientSecret([MY SECRET TOKEN]);
$client->setRedirectUri([MY REDIRECT URI]);
$client->setDeveloperKey([MY DEV KEY]);
$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
  unset($_SESSION['token']);
}

/*
** Request token from API
*/
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()) {


  // MY CODE GOES HERE


  } else {

  $authUrl = $client->createAuthUrl();
  print "<a class='login' href='$authUrl'>Connect Me!</a>";
}


?>

ありがとう !

4

1 に答える 1

0

この問題に対する答えがまだあるかどうかはわかりませんが、私はかつて同じ問題を抱えていました。Google API は Oauth アクセス トークンを返します。このトークンは無期限に存続しますが、コードでは、保持する期間を持つ $_SESSION 変数に格納しています。$token = $client->getAccessToken();アクセス トークンを変数に入れ、トークンをデータベースなどの別の形式に格納するために使用してみてください。次に、が設定されているかどうかを確認するときに、$_SESSION['token']設定されていない場合は、データベースにクエリを実行してトークンを取得し、使用できます$client->setAccessToken($queryResult); 。API は、そのアクセス トークンを持っている限り、残りを処理します。

于 2013-02-13T19:15:19.647 に答える