나는 자동으로 Joomla에서 일정을 추가하는 스크립트를 만들려고합니다. 새 페이지를 추가하여 Google 캘린더에 추가하십시오. 나는이 코드로 만들었고 심지어는 효과가 있지만 시간이 조금 걸린다.오랫동안 Google API 승인
Google 인증이 어떻게 작동하는지 오해 한 것 같습니다. 먼저 해당 달력을 사용하도록 스크립트를 인증해야합니다. 나는 그것을 한 번 만들었지 만 한 시간 후에 나는 그것을 다시해야했다. 나는 그것을 영원히 또는 최소한 1 년 (한 시간 이상) 승인하고 싶습니다. 그리고 저장 과정에서 스크립트를 저장하기 때문에 자동으로 다시 사후 관리로 리디렉션되기 때문에 저장 프로세스 중에도 권한을 부여 할 수 없습니다.
한 가지 더 언급 할 점 : 리디렉션 URI가 있으며 관리 페이지의 index.php에 설정되어 있습니다. 그게 문제인지는 모르겠지만, index.php에 뉴스가 추가되어서는 안되기 때문에 ...... 같은 페이지입니다.
하지만 문제는 그것이 uri를 리디렉션하지 않는다고 생각하기 때문에 모든 것이 한 시간 동안 (또는 그 주위의) 작동합니다.
require_once "google-api-php-client/src/Google_Client.php";
require_once "google-api-phpclient/src/contrib/Google_CalendarService.php";
session_start();
$client = new Google_Client();
$client->setApplicationName("Add Google Calendar Entries");
$client->setClientId('####');
$client->setClientSecret('####');
$client->setRedirectUri('####');
$client->setDeveloperKey('####');
$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()) {
$calList = $cal->calendarList->listCalendarList();
$_SESSION['token'] = $client->getAccessToken();
$event = new Google_Event();
// some calendar adding stuff
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Authorize!</a>";
}
// Google Calendar API END
}
그냥 요약 : 내 권한이 더 이상 작업 할 어쩌면 내 코드 또는 실수가 THX 여기
은 (사본 일부 구글 API를 예제 페이지에서 붙여 넣기) 내 코드입니다 그게 어떻게 작동하는지 나의 이해에.
컴퓨터에서 PHP 세션의 수명은 어떻게됩니까? (참고로, 최신 버전의 Google API (https://github.com/google/google-api-php-client)를 사용하는 것이 좋습니다. – Plenka
작동 방식이 아니므로 다시 인증해야합니다. 토큰이 만료 된 후 Joomla에서 JGoogle API를 사용/확장하려고 시도 할 수 있습니다. Joomla가 OAuth를 관리 할 수 있기 때문입니다. – Elin