Я пытаюсь использовать 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 «Simple API Access key», я ничего не нахожу, ничего на их документах, нет примеров, нет учебников, ничего. Я единственный, кто использует эту вещь?
Так может кто-то сказать мне, что я делаю неправильно?
(я знаю, что это старый вопрос, но я был бы рад, если бы кто-то дал реальный ответ здесь, так что я делаю это сейчас)
Я столкнулся с одной и той же проблемой: простой доступ к API плохо документирован (или, может быть, просто не там, где я искал), но с помощью Google API Explorer я нашел способ получить то, что мне нужно, что на самом деле довольно просто. Вам не нужна конкретная библиотека или что-то еще: на самом деле это очень просто.
В моем случае мне просто нужно было искать ключевое слово на 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.
Вы не можете получить доступ к своей информации календаря с помощью API-ключа . Клавиши API (или простой ключ API-интерфейса) не являются авторизованными токенами и могут использоваться только для некоторых вызовов API, таких как поисковый запрос Google и т. Д .; Ключи API не позволят вам получить доступ к каким-либо конкретным данным пользователя, которые, как я предполагаю, являются вашей целью в этом приложении календаря.
Кроме того, из того, что я вижу в вашем коде, вы создаете клиентский объект, который будет использовать аутентификацию OAuth 2.0, и, следовательно, вы получаете сообщения об ошибках аутентификации.
Нет такого понятия, как Simple API Access key
.
Обычно для авторизации используется OAuth 2.0. Но так как у вас есть причина не использовать его.
API key
Simple API Access
разделе « Simple API Access
к API» на странице « Доступ к API» . Я попал в эту тему, пытаясь сделать то же самое сегодня. Хотя это уже поздно, но ответ «ДА», на самом деле есть простой ключ 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, но тогда вам придется обрабатывать ошибки и самостоятельно анализировать результат.
См. Ниже ссылку, которая вам полезна. Клиентская библиотека Google API позволяет вам работать с Google API, такими как Google Analytics, Adsense, Google+, Календарь, Модератор, Задачи или Локатор на своем сервере, на выбранном вами языке.
http://code.google.com/p/google-api-php-client/
Спасибо, Чинту