У статті представлений огляд роботи з API ВКонтакте з 1С. А так же розглядається демонстраційна конфігурація по роботі з API.
Створення програми "ВКонтакте".
На станиці створення програми необхідно ввести назву вашої програми і вибрати тип "Standalone-додаток".
В результаті буде створено програму. Зміст всіх цих дій в отриманні ID додатки, яке і буде використовуватися в запитах до API.
Я ж опишу як все це можна реалізувати на 1С.
Нижче наведено приклад коду. Перехід на сторінку вставлений в процедуру "відкриття ()"
Для цього необхідно обробляти подія "ДокументСформірован" елемента "ПолеHTMLДокумента".
Нижче наведено приклад обробки даної події.
Відправлення запитів до API ВКонтакте.
Після того, як отримано access_token можна виконувати запити до API.
Примітка. Якщо необхідно провести дію зі стіною групи, то в owner_id встановлюється значення зі знаком "-".
Нижче наведено код процедури, що виконує запити до API (слід зауважити що використовується HTTPS з'єднання).
Відправка фотографій.
Як виробляти відправку фотографій можна прочитати в документації ВКонтакте (або подивитися в демонстаціонной конфігурації). У цій статті я хочу зупинитися лише на одному моменті.
Зображення відправляється методом POST. Відправляється файл має наступну структуру:
--0123456789
Content-Disposition: form-data; name = "photo"; filename = "image.jpg"
Content-Type: image / jpeg
де 0123456789 - Boundary: якась послідовність символів. Так само необхідно встановити HTTP заголовки Content-Type і Content-Length.
Так як в 1С немає методів для роботи з двійковими файлами був придуманий наступний спосіб. Формуються 2 текстовий файлу: з початком кінцевим файлу:
--0123456789
Content-Disposition: form-data; name = "photo"; filename = "image.jpg"
Content-Type: image / jpeg
Разом виходить 3 файлу:
1. текстовий файл з початком
2. саме зображення
3. текстовий файл із закінченням
Використовуючи метод "Об'едінітьФайли" з'єднуємо 3 файлу в один і відправляємо вже отриманий файл.
Нижче наведено код демонструє відправку файлу.
Прикріплення карти до повідомлення на стіні.
У поточній реалізації API відсутня можливість прикріплення карти до повідомлення. Що буває не дуже зручно. Наприклад, якщо в повідомленні йдеться про якийсь проведеної акції, то добре б було до нього прикріпити картку з місцем проведення акції. Дане завдання було вирішене мною таким чином: зверненням до Google Maps API виходить зображення карти, а потім воно буде приєднано до повідомлення як звичайна картина.
де LAT і LONG географічні координати місця. Опис інших параметрів можна знайти в описі Google Maps API. Скажу лише, що наведені в даному прикладі на мою думку є оптимальними і їх можна не міняти. У відповідь приходить зображення карти.
Нижче наведено приклад використання.
тобто наприклад, щоб отримати інформацію про користувачів можна скористатися наступним кодом
перший параметр access_token, другий - id користувача.
Значенням функцій є Структура або масив структур в завімості від формату відповіді сервера. Ключами структури є параметри повертаються у відповіді сервером. Наведений нижче приклад демонструє висновок імен користувачів з ID 123456 і 654321.
Використовуючи написану вище інформації, документацію розробника ВКонтакте і приклади з демостраціонной конфігурації можна досить просто додати відсутній функціонал.
Демонстраційна база працює як в режимі керованих форм так і в звичайному додатку.
Код демонстраційної конфігурації може використовуватися в інших розробках без будь-яких органичений.