Как использовать Google «Простой ключ доступа к API» для доступа к информации Календаря Google (PHP)? - PullRequest
16 голосов
/ 25 ноября 2011

Я пытаюсь использовать 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», я ничего не нахожу, ничего в их документах, ни примеров, ни учебников, ничего. Я один использую эту вещь?

Так может кто-нибудь сказать мне, что я делаю не так?

Ответы [ 5 ]

5 голосов
/ 25 июля 2013

(я знаю, что это старый вопрос, но я был бы рад, если бы кто-то дал здесь реальный ответ, поэтому я делаю это сейчас)


Я столкнулся с той же проблемой, ПростойДоступ к 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), сохраните его где-нибудь в своем проекте и назовите его в URI, которые вы запрашиваете.

3 голосов
/ 20 августа 2013

Вы не можете получить доступ к информации календаря, используя API Key .Ключи API (или простой ключ доступа API) не являются авторизованными токенами и могут использоваться только для некоторых вызовов API, таких как поисковый запрос Google и т. Д .;Ключи API не позволят вам получить доступ к каким-либо специфическим данным пользователя, что, как я предполагаю, является вашей целью через это приложение календаря.

Кроме того, из того, что я вижу в вашем коде, вы создаете объект клиента, которыйиспользуйте аутентификацию OAuth 2.0 и, следовательно, вы получаете сообщения об ошибках аутентификации.

1 голос
/ 25 января 2012

Нет такого понятия, как Simple API Access key.

Обычно OAuth 2.0 используется для авторизации.Но так как у вас есть причина не использовать его.

  • Если вы хотите использовать OAuth1.0 для авторизации.Вам необходим раздел API key in Simple API Access на странице API Access .
  • Если вы хотите использовать имя пользователя и пароль вместо OAuth, вы можете обратиться к ClientLogin, но это не рекомендуется.
0 голосов
/ 31 марта 2016

Я попал в эту ветку, когда пытался сделать то же самое сегодня.Хотя это слишком поздно, но ответ - ДА, на самом деле существует простой ключ 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 с vallina http клиентом, а не oauth клиентом, и наслаждайтесь простым ключом API.

В первом ответе говорилось, что вы можете использовать http GET напрямую, но затем вам нужно будет обработать ошибки и проанализировать результат.сами.

0 голосов
/ 25 апреля 2012

См. Ссылку ниже, которая полезна для вас. Клиентская библиотека Google API позволяет вам работать с API-интерфейсами Google, такими как Google Analytics, Adsense, Google+, Календарь, Модератор, Задачи или Локатор на вашем сервере, на выбранном вами языке.

http://code.google.com/p/google-api-php-client/

Спасибо, Chintu

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...