Loading...
dinkoslav avatar dinkoslav 123 Точки

Google Calendar API v3 & Facebook API

Здравейте,

 

Понеже от няколко дена се опитвам да се справя с Google Calendar API v3 & Facebook API и не мога да намеря никакви примерни неща, които да ми помогнат. Не мога да намеря начин да качвам евенти в календара, а ASP.NET готовите темплейти за Facebook са проблемни и като се оправят грешките не може да се вземат данни за user-а (birthday, friend_list, etc.).

Ако някой може да ми даде съвет, пример или да ми окаже някакъв друг вид съдействие, ще съм благодарен.

 PS. Достъпвам ги с .NET и двете.

Поздрави,

Динко

Тагове:
2
Общи приказки 24/11/2014 13:13:32
svetli0o avatar svetli0o 134 Точки

За да качваш евенти в google calendar трябва да имаш достъп до него. Например ако ти си създал календара от твоя профил в google ти ще имаш достъп да създаваш евенти в него. Ако обаче искаш друг user от google да може да създава евенти в твоя календар трябва календара да бъде публичен и ти да му дадеш достъп като в настройките на календара му добавиш e-mail адреса.

За Facebook нещата са по - сложни, защото за да използваш някои параметри като friend_list трябва Facebook да ти проверят приложението (което отнема 7 до 14 бизнес дни) и чак след това можеш например да пращаш GET заявка към friend_list.

За google api има .NET клиент. Аз лично не съм го използвал, защото няма tutorial-и, примери и други подобни. Използвал съм втория вариант, при който правиш HtppRequestMessage и го изпращаш като POST заявка през HttpClient. За да добавиш евент в google calendar по този начин (и да кажем, че вече имаш достъп - access_token), трябва да направиш POST заявката към URL-а, който е даден в документацията (https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events където  calendarId е ID на календара ти). В заявката трябва да имаш:

 1) header "Authorization" със стойност "Bearer " + стойността на access_token

 2) header "Content-Type" със стойност "application/json"

 3) Content със стойност JSON стринг (евента, който искаш да се създаде в календара като JSON обект)

Трябва да четеш доста от документацията на google calendar api, примери и други такива има много малко и повечето са или от стара версия или не са каквото търсиш. За Facebook нещата са по - кофти, защото за повечето неща ти трябва достъп от Facebook (Както казах по - горе трябва да ти проверят приложението, да не е спамерско или нещо зловредно). За Facebook ако искаш да правиш нещо от своя профил като администрация или да постнеш на стената си нещо, да добавиш снимка или нещо такова, тогава нещата стоят като при google api: Взимаш access_token и изпращаш заявка към Facebook api.

Ето примерен код:


        private void CreateEvent(string date, string summary)
        {
            string uri = String.Format("https://www.googleapis.com/calendar/v3/calendars/{0}/events", this.calendarId);
            HttpRequestMessage request = new HttpRequestMessage();
            request.RequestUri = new Uri(uri);
            request.Method = HttpMethod.Post;
            request.Headers.Authorization = new AuthenticationHeaderValue(this.token.TokenType, this.token.Token);

            SimpleEvent @event = new SimpleEvent()
            {
                Start = date,
                End = date,
                Summary = summary
            };
            HttpContent content = new StringContent(@event.Serialize());
            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            request.Content = content;

            HttpClient client = new HttpClient();
            var response = client.SendAsync(request).Result;
        }

ЗАБЕЛЕЖКА: За да използваш този метод се очаква, че вече имаш access_token, calendarId и клас SimpleEvent, който има метод Serialize() и сериализира SimpleEvent-a към JSON string.

2
dinkoslav avatar dinkoslav 123 Точки

Благодаря,

 

Горе долу разбрах как стоят нещата, доста от документацията прочетох и до колкото разбрах нещата стоят така за Google Calendar API:

 

Ако се направи оторизация с oAuth2 и посочения user съм му дал права да ми прави промени по календара, ми е нужен само конкретния JSON които прави добавянето на този евент (които също разбрах как да изглежда и как да са подредени нещата в него). Значи остава да се оправя с oAuth2.

Колкото до Facebook API, явно нещата с постване на чужд профил няма да го бъдат, защото това нещо ми е нужно до седмица най-много. Успях да направя постване на моета страница и явно ще използвам него, или поне ще се опитам да го използвам :)

Доста е трудно за 2-3 дена човек да се справи с нещо подобно, особенно ако е на ниво Basic ...

 

Благодаря отново,

Динко

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.