Решил попробовать добавить событие в Google календарь из консоли. Судя по документации мне нужно пройти следующие шаги:
1. Аунтификация:
curl -d "Email=mail@gmail.com&Passwd=password&source=companyName-applicationName-versionID&service=cl" https://www.google.com/accounts/ClientLogin
С этим все нормально, мне возвращается AuthToken.
2. Дальше нужно создать событие (Event):
На запрос
curl -H "Authorization: GoogleLogin auth=DQAAAIkAAADpos4KBDwX6GdCS3Z1VLDvXw7CDrU0RbG6NelvFOe9ah-ZY8IbddfwA7JX4OB_MiK580wKHIJ1AV6wtgt7CVFx43ek8m6Dm7vKTj5ARKal0DKSE1u0l6AbFrLbYKMf_6th4mRqFMRcP832h8O6qd2_nqq0Te9JzUYy-xdDfSeUIshDnUfk0aFzD5dTcgQNwlc" http://www.google.com/calendar/feeds/mail@gmail.com/private/full
мне возвращается
<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="http://www.google.com/calendar/feeds/mail@gmail.com/private/full?gsessionid=FAoHLwz1riEQJkcNYWblBd">here</A>.
</BODY>
</HTML>
Судя по документации - это нормально, мне нужно послать на возвращенный url XML. А вот как это сделать я не понимаю.
Запрос вида:
curl -H "Authorization: GoogleLogin auth=DQAAAIkAAADpos4KBDwX6GdCS3Z1VLDvXw7CDrU0RbG6NelvFOe9ah-ZY8IbddfwA7JX4OB_MiK580wKHIJ1AV6wtgt7CVFx43ek8m6Dm7vKTj5ARKal0DKSE1u0l6AbFrLbYKMf_6th4mRqFMRcP832h8O6qd2_nqq0Te9JzUYy-xdDfSeUIshDnUfk0aFzD5dTcgQNwlc" http://www.google.com/calendar/feeds/mail@gmail.com/private/full?gsessionid=FAoHLwz1riEQJkcNYWblBd
возвращает портянку о моем календаре:
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gCal='http://schemas.google.com/gCal/2005'>
<id>http://www.google.com/calendar/feeds/mail@gmail.com/private/full</id>
<updated>2009-12-28T06:41:19.000Z</updated>
<category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'/>
<title type='text'>mail@gmail.com</title>
<subtitle type='text'>mail@gmail.com</subtitle>
<link rel='alternate' type='text/html' href='http://www.google.com/calendar/embed?src=mail@gmail.com'/>
<link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.google.com/calendar/feeds/mail@gmail.com/private/full'/>
<link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='http://www.google.com/calendar/feeds/mail@gmail.com/private/full'/>
<link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://www.google.com/calendar/feeds/mail@gmail.com/private/full/batch'/>
<link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/mail@gmail.com/private/full?max-results=25'/>
<author>
<name>User Name</name>
<email>mail@gmail.com</email>
</author>
<generator version='1.0' uri='http://www.google.com/calendar'>Google Calendar</generator>
<openSearch:totalResults>0</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>25</openSearch:itemsPerPage>
<gCal:timezone value='Europe/Samara'/><gCal:timesCleaned value='0'/></feed>
т.е. все работает и правильно.
Собстенно, подскажите как средставми curl отправить вот такой XML:
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:gd='http://schemas.google.com/g/2005'>
<category scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/g/2005#event'></category>
<title type='text'>Tennis with Beth</title>
<content type='text'>Meet for a quick lesson.</content>
<gd:transparency
value='http://schemas.google.com/g/2005#event.opaque'>
</gd:transparency>
<gd:eventStatus
value='http://schemas.google.com/g/2005#event.confirmed'>
</gd:eventStatus>
<gd:where valueString='Rolling Lawn Courts'></gd:where>
<gd:when startTime='2006-04-17T15:00:00.000Z'
endTime='2006-04-17T17:00:00.000Z'></gd:when>
</entry>