Как использовать Google "Простой доступ к API-интерфейсу" для доступа к информации Календаря Google (PHP)?
Я пытаюсь использовать Google API v3 для доступа к одному календарю Google и в соответствии с документацией здесь: http://code.google.com/apis/calendar/v3/using.html#intro и здесь: https://code.google.com/apis/console/, мне нужно решение "Простой доступ к API" и "Ключ для серверных приложений (с блокировкой IP)".
Теперь, когда я создаю страницу с этим кодом:
session_start();
require_once 'fnc/google-api-php-client/src/apiClient.php';
require_once 'fnc/google-api-php-client/src/contrib/apiCalendarService.php';
$apiClient = new apiClient();
$apiClient->setUseObjects(true);
$service = new apiCalendarService($apiClient);
if (isset($_SESSION['oauth_access_token'])) {$apiClient->setAccessToken($_SESSION['oauth_access_token']);
} else {
$token = $apiClient->authenticate();
$_SESSION['oauth_access_token'] = $token;
}
и в моем файле config.php я добавляю ТОЛЬКО мой ключ разработки (вместо "X" ):
global $apiConfig;
$apiConfig = array(
// True if objects should be returned by the service classes.
// False if associative arrays should be returned (default behavior).
'use_objects' => false,
// The application_name is included in the User-Agent HTTP header.
'application_name' => '',
// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console
'oauth2_client_id' => '',
'oauth2_client_secret' => '',
'oauth2_redirect_uri' => '',
// The developer key, you get this at https://code.google.com/apis/console
'developer_key' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
// OAuth1 Settings.
// If you're using the apiOAuth auth class, it will use these values for the oauth consumer key and secret.
// See http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html for info on how to obtain those
'oauth_consumer_key' => 'anonymous',
'oauth_consumer_secret' => 'anonymous',
Но потом я получаю ошибки, и он говорит мне, что пытается аутентифицироваться с использованием системы "OAuth 2.0", которую я не хочу использовать. Я хочу получить доступ к одному календарю с помощью ключа API.
И удивительно, что при поиске в Google "Простой доступ к API-интерфейсу" я ничего не нахожу, ничего на их документах, нет примеров, нет учебников, ничего. Я единственный, кто использует эту вещь?
Так может кто-нибудь сказать мне, что я делаю неправильно?
Ответы
Ответ 1
(я знаю, что это старый вопрос, но я был бы рад, если бы кто-то
дал настоящий ответ, поэтому я делаю это сейчас)
Я столкнулся с одной и той же проблемой: простой доступ к API не очень хорошо документирован (или, может быть, просто не там, где я искал), но используя Google API Explorer Я нашел способ получить то, что мне нужно, что на самом деле довольно просто. Вам не нужна конкретная lib или что-то еще: на самом деле это действительно просто.
В моем случае мне просто нужно было искать ключевое слово на G +, поэтому мне просто нужно было выполнить запрос GET:
https://www.googleapis.com/plus/v1/activities?query={KEYWORD}&key={YOUR_API_KEY}
Теперь для доступа к календарю (см. здесь), предположим, что мы хотим получить список правил управления доступом. Нам нужно обратиться к calendar.acl.list, которые дают нам URI:
https://www.googleapis.com/calendar/v3/calendars/{CALENDAR_ID}/acl?key={YOUR_API_KEY}
Заполните пробелы, и это почти все, что вам нужно сделать. Получите серверный ключ (подменю API Access), сохраните его где-нибудь в своем проекте и вызовите его в URI, которые вы запрашиваете.
Ответ 2
Вы не можете получить доступ к своей информации календаря с помощью API-ключа. Клавиши API (или простой ключ API-интерфейса) не являются авторизованными токенами и могут использоваться только для некоторых вызовов API, таких как поисковый запрос Google и т.д.; Ключи API не позволят вам получить доступ к каким-либо конкретным данным пользователя, которые, как я предполагаю, являются вашей целью через это приложение календаря.
Кроме того, из того, что я вижу в вашем коде, вы создаете клиентский объект, который будет использовать аутентификацию OAuth 2.0, и, следовательно, вы получаете сообщения об ошибках аутентификации.
Ответ 3
Нет такой вещи, которая называется Simple API Access key
.
Обычно для авторизации используется OAuth 2.0. Но поскольку у вас есть причина не использовать его.
- Если вы хотите использовать OAuth1.0 для авторизации. Вам нужно
API key
в Simple API Access
на странице API Access.
- Если вы хотите использовать логин и пароль для входа вместо OAuth, вы можете обратиться к ClientLogin, но это не рекомендуется.
Ответ 4
Я попал в эту тему, пытаясь сделать то же самое сегодня. Хотя это уже поздно, но ответ "ДА", на самом деле есть простой ключ API для тех, кто не нуждается в авторизации пользователей, и официальная клиентская библиотека поддерживает это.
Библиотека api делает это с помощью опций, которые являются ключевыми, парами значений.
Возьмем пример получения информации о данном видео youtube, вы бы использовали этот api: https://godoc.org/google.golang.org/api/youtube/v3#VideosListCall.Do
Чтобы использовать ключ api, просто создайте тип, реализующий интерфейс CallOption, и пусть он вернет ключ api:
type APIKey struct {
}
func (k *APIKey) Get() (string, string) {
return "key", "YOU API KEY HERE"
}
Затем, вызывая API, поставьте ему APIKey:
youtube, err := youtube.New(&http.Client{})
call := youtube.Videos.List("snippet,contentDetails,statistics").Id(id)
rsp, err := call.Do(opt)
Таким образом, вы можете сконструировать клиент youtube с клиентом http: vallina, а не oauth-клиентом, и пользоваться простым ключом api.
Первый ответ сказал, что вы можете напрямую использовать http GET, но тогда вам нужно будет обрабатывать ошибки и самостоятельно анализировать результат.
Ответ 5
См. ниже ссылку, которая вам полезна. Клиентская библиотека Google API позволяет вам работать с Google API, такими как Google Analytics, Adsense, Google+, Календарь, Модератор, Задачи или Локатор на своем сервере, на выбранном вами языке.
http://code.google.com/p/google-api-php-client/
Спасибо,
Chintu