Проверка подлинности открытого ключа API на уровне домена с помощью общих календарей Google Calendar через Stack Overflow

Я пытаюсь переписать скрипт календаря Google для обновления до API v3.

Я не хочу заставлять своих пользователей аутентифицировать свои календари по одному с помощью процедуры oAuth 2. Они должны иметь возможность устанавливать календари как общедоступные и не обязаны это делать. Целью скрипта является публичное отображение календаря, поэтому он не должен требовать сложной аутентификации, так как в любом случае данные уже обнародованы.

Я могу успешно сделать это, используя ключ API, который использует IP-адрес сервера. Но многие пользователи имеют общий хостинг, где их IP-адреса часто меняются. Я предпочел бы иметь ключи API, основанные на имени домена вместо этого. Это возможно?

<?php
// set to Public API access with IP address at
// https://console.developers.google.com/project/MYPROJECT/apiui/credential
// works
$url = 'https://www.googleapis.com/calendar/v3/calendars/494h1li4bohjc380cl8bntq94k%40group.calendar.google.com/events?key=MYAPIKEY_XXXXXXXXXXXXXXXXXXXXXXXXXX&maxResults=100&singleEvents=true&orderBy=startTime&timeMin=2014-11-18T14:00:00-00:00';

// set to Public API access with "Browser Key" and referer *.mydomainname.com/*
// at https://console.developers.google.com/project/MYPROJECT/apiui/credential
// does not work
$url = 'https://www.googleapis.com/calendar/v3/calendars/494h1li4bohjc380cl8bntq94k%40group.calendar.google.com/events?key=MYAPIKEY_YYYYYYYYYYYYYYYYYYYYYYYYYY&maxResults=100&singleEvents=true&orderBy=startTime&timeMin=2014-11-18T14:00:00-00:00';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = curl_exec($curl);
curl_close($curl);
print_r($data);

1

Решение

Если календари являются общедоступными, то вы должны иметь возможность аутентифицироваться как ЛЮБОЙ аккаунт Google и читать календарь, вам не нужно проходить аутентификацию как этот конкретный пользователь. Используйте стандартную аутентификацию OAuth 2.0 и запрашивайте автономный доступ, чтобы получить токен обновления, который можно использовать для обновления токена доступа.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector