Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Пример работы с Google Documents List Data API          
Vofka Подменю пользователя
сообщение 14.07.11, 17:27
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Простой пример работы с google docs из 1С V8.
Рассмотрены только некоторые простые операции: получение списка документов/коллекций, загрузка документа на сервер, установка прав доступа, удаление документа.


Это простой пример работы с google docs из 1С V8.

Рассмотрены только некоторые простые операции: получение списка документов/коллекций, загрузка документа на сервер, установка прав доступа, удаление документа.

Модификация документов средствами API мне не требовалась, и поэтому делать не пробовал.

Первым делом получаем идентификатор/параметр авторизации (authentication token)

ФайлИд = ПолучитьИмяВременногоФайла();                 
Соединение = Новый HTTPСоединение("www.google.com", , , , , Истина);
Соединение.Получить("accounts/ClientLogin?accountType=GOOGLE&service=writely&source=1C&Email=" + ИмяПользователя + "&Passwd=" +  Пароль, ФайлИд);
//writely,wise
ФайлОтвета = Новый ТекстовыйДокумент;
ФайлОтвета.Прочитать(ФайлИд, "utf-8");
ПараметрАвторизации = ФайлОтвета.ПолучитьСтроку(3);


А дальше пытаемся управлять сервисом с помощью методов HTTPСоединения ОтправитьДляОбработки(Put), Получить(Get), Удалить(Delete).

Например, чтобы опубликовать документ excel

Файл = Новый Файл(ИсточникИмяФайла);
РазмерФайла = Файл.Размер();
ИмяФайла = Файл.Имя;
Файл = Неопределено;

СайтУРЛ = "docs.google.com";
УРЛ = "feeds/default/private/full";
РезультатИмяФайла = ПолучитьИмяВременногоФайла();
//ПараметрАвторизации = ПолучитьПараметрАвторизации();

Соединение = Новый HTTPСоединение(СайтУРЛ, , , , , Истина);//"spreadsheets0.google.com"

Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "GoogleLogin auth=" + Сред(ПараметрАвторизации, 6));
Заголовки.Вставить("GData-Version", "3.0");
Заголовки.Вставить("Content-Length", Формат(РазмерФайла, "ЧГ="));
Заголовки.Вставить("Content-Type", "application/vnd.ms-excel");
Заголовки.Вставить("Slug", ИмяФайла);
                              
//Теперь можно отправлять GET или POST запросы гугловскому API.
//Отправка POST Запроса
Соединение.ОтправитьДляОбработки(ИсточникИмяФайла, УРЛ, РезультатИмяФайла, Заголовки);


В результате выполнения команды получаем xml документ (структура файла документирована).

Из файла ответа можно вытащить идентификатор ресурса (resourceId), выглядит как строка вида «0ApemGBzasF4MdC1WaEE1UGxDYjlnWUxDdTRlbDZzdEU».

Если нужно добавить документ в существующую коллекцию (папку) то URL должен содержать идентификатор папки

УРЛ = "feeds/default/private/full" + "/folder%3A0B5emGBzasF4MZmViYTJjNmMtNGI0ZS00YmMzLWIzYmYtYzIzMDhlYmUwMzlR/contents";

//Здесь «0B5emGBzasF4MZmViYTJjNmMtNGI0ZS00YmMzLWIzYmYtYzIzMDhlYmUwMzlR» это идентификатор папки.

А теперь удалим документ

СайтУРЛ = "docs.google.com";
УРЛ = "feeds/default/private/full/" + ИдентификаторДокумента + "";//?delete=true
//ПараметрАвторизации = ПолучитьПараметрАвторизации();
Соединение = Новый HTTPСоединение(СайтУРЛ, , , , , Истина);//"spreadsheets0.google.com"

Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "GoogleLogin auth=" + Сред(ПараметрАвторизации, 6));
Заголовки.Вставить("If-Match", "*");//If-Match:
Заголовки.Вставить("GData-Version", "3.0");
                              
//Теперь можно отправлять GET или POST, DELETE запросы гугловскому API.
Соединение.Удалить(УРЛ, Заголовки);//feeds/spreadsheets/private/full


Получим список документов (и коллекций)

СайтУРЛ = "docs.google.com";
УРЛ = "feeds/default/private/full";
//УРЛ = "feeds/default/private/full/-/folder";//GET /feeds/default/private/full/-/folder//GET /feeds/default/private/full?showfolders=true

РезультатИмяФайла = ПолучитьИмяВременногоФайла();
//ПараметрАвторизации = ПолучитьПараметрАвторизации();

Соединение = Новый HTTPСоединение(СайтУРЛ, , , , , Истина);//"spreadsheets0.google.com"

Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "GoogleLogin auth=" + Сред(ПараметрАвторизации, 6));
Заголовки.Вставить("GData-Version", "3.0");
                              
//Теперь можно отправлять GET или POST запросы гугловскому API.
//Например получение списка spreadsheets через GET:
Соединение.Получить(УРЛ, РезультатИмяФайла, Заголовки);//feeds/spreadsheets/private/full


Подробности смотреть в [необходимо зарегистрироваться для просмотра ссылки]

Обработка для 1C 8.2 (это просто заготовка на которой изучалась/проверялась работа с API)

PS: Google Docs & Spreadsheets (сервисы writely, wise) изначально разные продукты (созданные в разное время), похоже goggle немножко менял API и некоторые примеры из интернета не работают.

Обработку залил на [необходимо зарегистрироваться для просмотра ссылки].

[необходимо зарегистрироваться для просмотра ссылки]

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 6:45
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!