¿Cómo uso la "clave de acceso a API simple" de Google para acceder a la información del calendario de Google(PHP)?
google-calendar-api (5)
Estoy intentando usar la API de Google v3 para acceder a un calendario de Google y de acuerdo con la documentación aquí: http://code.google.com/apis/calendar/v3/using.html#intro y aquí: https://code.google.com/apis/console/ , la solución que necesito es la "Acceso simple a la API" y la "Clave para aplicaciones de servidor (con bloqueo de IP)".
Ahora, cuando creo una página con este código:
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;
}
y en mi archivo "config.php" agrego SOLAMENTE mi clave de desarrollador (en lugar de la "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'',
Pero luego recibo errores y me dice que está intentando autenticarse con el sistema "OAuth 2.0" que no quiero usar. Solo quiero acceder a un calendario con una clave API.
Y sorprendentemente, cuando busco en Google "Clave de acceso a API simple" no encuentro nada, nada en sus documentos, no hay ejemplos, no hay tutoriales, nada. ¿Soy el único que usa esta cosa?
Entonces, ¿alguien puede decirme qué estoy haciendo mal?
(Sé que esta es una pregunta antigua, pero me hubiera gustado que alguien haya dado una respuesta real aquí, así que lo estoy haciendo ahora)
Me encontré con el mismo problema, el acceso a la API simple no está bien documentado (o quizás no donde busqué), pero al usar el API API de Google, encontré una manera de obtener lo que necesito, lo que de hecho es bastante sencillo. No necesitas lib lib específico ni nada: en realidad es muy simple.
En mi caso, simplemente necesitaba buscar una palabra clave en G +, así que solo tenía que hacer una solicitud GET:
https://www.googleapis.com/plus/v1/activities?query={KEYWORD}&key={YOUR_API_KEY}
Ahora, para un acceso al calendario ( ver aquí ), simulemos que queremos obtener la lista de reglas de control de acceso. Necesitamos referirnos a calendar.acl.list que nos da el URI:
https://www.googleapis.com/calendar/v3/calendars/{CALENDAR_ID}/acl?key={YOUR_API_KEY}
Llene los espacios en blanco, y eso es todo lo que necesita hacer. Obtenga una https://code.google.com/apis/console/ (submenú de acceso a API), almacénela en algún lugar de su proyecto y llámela a los URI que está solicitando.
Llegué a este hilo al intentar hacer lo mismo hoy. Aunque esto es demasiado tarde, pero la respuesta es SÍ, en realidad hay una clave API simple para aquellas API que no necesitan autorizaciones de los usuarios, y la biblioteca oficial del cliente lo admite.
La biblioteca de api hace esto por Opciones, que es clave, par de valores.
Tome el ejemplo de obtener información de un video de YouTube determinado, usaría esta API: https://godoc.org/google.golang.org/api/youtube/v3#VideosListCall.Do
Para usar la clave api, simplemente haga un tipo que implemente la interfaz de CallOption, y deje que devuelva la clave api:
type APIKey struct {
}
func (k *APIKey) Get() (string, string) {
return "key", "YOU API KEY HERE"
}
Luego, al llamar a la API, proporcione la APIKey:
youtube, err := youtube.New(&http.Client{})
call := youtube.Videos.List("snippet,contentDetails,statistics").Id(id)
rsp, err := call.Do(opt)
De esta manera, puede construir el cliente de youtube con el cliente http vallina, en lugar de un cliente real, y disfrutar de la simple clave de api.
La primera respuesta dice que puede usar http GET directamente, pero luego deberá manejar los errores y analizar el resultado usted mismo.
No hay tal cosa llamada Simple API Access key
.
Normalmente se usa OAuth 2.0 para la autorización. Pero como tienes tu razón para no usarlo.
- Si desea utilizar OAuth1.0 para su autorización. Necesita una
API key
en la secciónSimple API Access
en la página Acceso a API . - Si desea utilizar el nombre de usuario y el inicio de sesión con contraseña en lugar de OAuth, puede consultar ClientLogin , pero esto no se recomienda.
No puedes acceder a la información de tu calendario usando la clave API . Las claves de API (o la simple clave de acceso a API) no son tokens autorizados y solo se pueden utilizar para algunas llamadas a API, como una consulta de búsqueda de Google, etc. Las claves API no le permitirán acceder a ningún dato específico del usuario, que asumo que es su objetivo a través de esta aplicación de calendario.
Además, por lo que veo en su código, está creando un objeto cliente que usará la autenticación OAuth 2.0 y, por lo tanto, recibirá mensajes de error de autenticación.
Vea el siguiente enlace que es útil para usted. La biblioteca de cliente API de Google le permite trabajar con API de Google como Analytics, Adsense, Google+, Calendar, Moderator, Tasks o Latitude en su servidor, en el idioma de su elección.
http://code.google.com/p/google-api-php-client/
Gracias chintu