2012-06-08 24 views
0

Мне нужно публиковать события, которые автоматически анализируются из стандартизованных сообщений электронной почты в общий календарь Google. Разбор электронной почты для создания объектов JSON, которые я могу сделать (и сделал). Но я никогда не использовал JSON-Я не знаю, как отправить это в Календарь Google. Я прочитал и перечитал документацию Google, но я не понимаю ее. В первую очередь, я не понимаю, как аутентификация может быть завершена без того, чтобы пользователь действительно присутствовал, чтобы вводить прием, что могло бы сорвать цель этого приложения.Аутентификация API Google с помощью методов RESTful

В основном я дизайнер, превратившийся в любительский разработчик, и я сильнейший в PHP, Javascript значительно отстает от него. Я создал веб-приложение, которое будет периодически вызывать HTTP-запрос к php-документу, который должен, найдя новые электронные письма с событиями для публикации, проанализировать их и опубликовать события, которые они содержат. Каждая часть этого объекта готова и ждет, за исключением части для отправки. Если кто-нибудь может помочь мне обернуть голову вокруг того, что есть концептуально требуется, чтобы иметь тихую автоматическую процедуру для публикации в Календаре Google. Я был бы очень благодарен. До сих пор, просто пытается получить мои ноги в воде, это где я получил на:

<?php 
$url = "https://www.googleapis.com/calendar/v3/calendars/".$calendar."/events?sendNotifications=false&key={".$api_key."}"; 
?> 

<script> 
function goGoogle() { 
data = "a json object will go here"; 
xhr = new XMLHttpRequest(); 
xhr.open("POST", "<?php echo $url?>", true); 
xhr.setRequestHeader("Content-type", "application/json"); 
xhr.send(data); 
xhr.onreadystatechange = function() { 
    alert(xhr.responseText); 
} 
} 
</script> 
<button onclick="goGoogle()">Sigh</button> 

От alert(xhr.responseText) вызова я получаю это на стадии 2 & 3:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

сейчас , I осуществить Я действительно не предоставлял никакой аутентификации, здесь, поэтому я не удивлен, что это провалилось. Проблема в том, что я не знаю как для аутентификации. Помогите!? :)

ответ

1

Прежде всего, убедившись, что я понимаю - у вас есть приложение, которое получает электронные письма от разных пользователей, и вы хотите размещать контент из этих сообщений в общий календарь Google, требующий аутентификации (в противном случае у вас была бы возможность опубликовать эти сообщения события, скажем, мой календарь, который мне совсем не понравится). Кроме того, ваше приложение должно сделать это без привлечения конечного пользователя. Однако у вас есть некоторые учетные данные/аутентификация в общем календаре, которые вы можете кодировать в своем приложении. (В противном случае вы можете снова отправить свой календарь). И, наконец, записи, которые вы делаете в календаре, будут «принадлежать» вашему приложению (т. Е. Вы не ввели бы их от имени одного из пользователей - поскольку у вас нет учетных данных, и они недоступны для предоставления разрешения).

Если все это правильно, я думаю, что местом, которое вы можете начать, является использование аутентификации ClientLogin в API календаря Google. Соответствующая документация находится по адресу: https://developers.google.com/google-apps/calendar/v2/developers_guide_protocol#AuthClientLogin
Ваше приложение будет использовать учетные данные/данные аутентификации, которые вы должны получить к общему календарю.

Эта страница также может содержать дополнительную информацию.

Приносим извинения, если я неправильно понял ваш вопрос или если мой ответ слишком расплывчатый. Я не получил доступ к календарю в коде, но в течение последних нескольких недель я работал над кодом аутентификации и OAuth2.

+0

Итак, проблема заключается в том, что я принципиально не понял OAuth2. Вы прекрасно поняли мою цель, и хотя страница, с которой вы ссылаетесь, действительно будет работать, из нее я оказался на этой странице: https://developers.google.com/google-apps/calendar/v2/developers_guide_protocol#AuthClientLogin, которая на самом деле обеспечивает прохождение, которое я искал, потому что он использует предпочтительный метод аутентификации Google, а именно OAuth2. – user1444668

Смежные вопросы