Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Демонстраційна конфігурація роботи з API ВКонтакте

  1. Створення програми "ВКонтакте".
  2. Авторизація на сайті ВКонтакте.
  3. Відправлення запитів до API ВКонтакте.
  4. Відправка фотографій.
  5. Прикріплення карти до повідомлення на стіні.

Створення програми "ВКонтакте".

Наша взаимовыгодная связь https://banwar.org/

Перш ніж приступити до работае з API необхідно створити додаток, від імені якого будуть виконуватися всі дії (розміщення записів і фотографій на стіні, додавання і читання коментарів, читання даних користувача тощо).

Для створення програми необхідно перейти за цим посиланням: https://vk.com/editapp?act=create

На станиці створення програми необхідно ввести назву вашої програми і вибрати тип "Standalone-додаток".

Для підтвердження дії необхідно отримати на мобільний телефон повідомлення з кодом.

В результаті буде створено програму. Зміст всіх цих дій в отриманні ID додатки, яке і буде використовуватися в запитах до API.

Авторизація на сайті ВКонтакте.

Перед роботою з API необхідно авторизуватися. ВКонтакте використовується спосіб авторизації OAuth 2.0.

Якщо в кратце і просто, то необхідно відкрити браузер, перейти по определнного адресою на сторінці, на якій необхідно ввести дані користувача. Після успішної авторизації повертається access_token. Його і потрібно зберегти, так як він буде використовуватися в запитах.

Більш детальну інформацію можна подивитися тут: http://vk.com/dev/auth_mobile

Я ж опишу як все це можна реалізувати на 1С.

Необхідно створити обробку для авторизації. На форму вивести поле HTML документа (елемент форми ПолеHTMLДокумента). При відкритті форми переходити за адресою

https://oauth.vk.com/authorize?client_id=&scope=&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Нижче наведено приклад коду. Перехід на сторінку вставлений в процедуру "відкриття ()"

Процедура відкриття () ЕлементиФорми.ПолеHTMLДокумента1.Перейті ( "https://oauth.vk.com/authorize?client_id=12345" + "& scope = photos, wall, offline & redirect_uri = http: //api.vk.com/blank.html& "+" display = page & response_type = token "); КонецПроцедури

Зі списком прав доступу можна ознайомитися на цій сторінці: http://vk.com/dev/permissions

Єдине, що можна згадати - це те, що якщо ви не хочете постійно авторизуватися (за замовчуванням access_token діє добу, після чого його необхідно знову отримувати), використовуйте параметр доступу offline. У такому випадку термін дії access_token буде необмежений і авторизація буде потрібно тільки один раз.

Після того, як користувач правильно введений пароль і дозволить додатком використовувати необхідні дані буде проведений перехід за адресою типу http://api.vk.com/blank.html#access_token=a1dfc7ef2b763d776350375f8a22678a59f28e1ac7e090b4a8486274564d38e9e8a069d10e596223d80d7&expires_in=0&user_id=5184504 . Залишається відстежити такий перехід і витягти з рядка адреси необхідну інформацію (обимно потрібно тільки access_token).

Для цього необхідно обробляти подія "ДокументСформірован" елемента "ПолеHTMLДокумента".

Нижче наведено приклад обробки даної події.

Процедура ПолеHTMLДокумента1ДокументСформірован (Елемент) access_token = ""; Якщо Елемент.Документ.location.host = "api.vk.com" Тоді hash = Серед (Елемент.Документ.location.hash, 2); МассівСтрок = СтроковиеФункцііКліентСервер.РазложітьСтрокуВМассівПодстрок (hash, "&"); Для кожного Параметр З МассівСтрок Цикл ІмяПараметра = ""; ЗначеніеПараметра = ""; Поз = Знайти (Параметр, "="); Якщо Поз = 0 Тоді ІмяПараметра = Параметр; ЗначеніеПараметра = ""; Інакше ІмяПараметра = НРег (СокрЛП (Лев (Параметр, Поз-1))); ЗначеніеПараметра = СокрЛП (Серед (Параметр, Поз + 1)); КонецЕсли; Якщо ІмяПараметра = "access_token" Тоді access_token = ЗначеніеПараметра; КонецЕсли; КонецЦікла; Константи.access_token = access_token; Закрити (); КонецЕсли; КонецФункціі

Відправлення запитів до API ВКонтакте.

Після того, як отримано access_token можна виконувати запити до API.

Для цього проводиться GET запит за певною адресою і читається відповідь. Загальний вигляд HTTP адреси виглядає наступним чином:

https://api.vk.com/method/ ІМЯ_МЕТОДА .xml? параметр1 = значення1 & параметрN = значеніеN & access_token = a1dfc7ef2b763d776350375f8a22678a59f28e1ac7e090b4a8486274564d38e9e8a069d10e596223d80d7

Наприклад, для розміщення записи "Привіт, ВКонтакте!" на стіні користувача http://vk.com/id5184504 буде така адреса:

https://api.vk.com/method/wall.post.xml?owner_id=5184504&message=Привет, ВКонтакте! & access_token = a1dfc7ef2b763d776350375f8a22678a59f28e1ac7e090b4a8486274564d38e9e8a069d10e596223d80d7

Примітка. Якщо необхідно провести дію зі стіною групи, то в owner_id встановлюється значення зі знаком "-".

Нижче наведено код процедури, що виконує запити до API (слід зауважити що використовується HTTP S з'єднання).

Процедура ВизватьМетодAPI (ІмяМетода, Параметри, access_token) Експорт ІмяВиходногоФайла = ПолучітьІмяВременногоФайла ( "xml"); З'єднання = Новий HTTPСоедіненіе ( "api.vk.com" ,,,,, Істина); Соедіненіе.Получіть ( "method /" + ІмяМетода + ".xml?" +? (ТіпЗнч (Параметри) = Тип ( "Рядок"), Параметри +? (ЗначеніеЗаполнено (Параметри), "&", "") + "access_token = "+ access_token, СформіроватьСтрокуПараметровЗапроса (Параметри, access_token)), ІмяВиходногоФайла); КонецПроцедури

Опис усіх методів ви можете знайти на сторінці для розробників ВКонтакте: http://vk.com/dev/methods

Відправка фотографій.

Як виробляти відправку фотографій можна прочитати в документації ВКонтакте (або подивитися в демонстаціонной конфігурації). У цій статті я хочу зупинитися лише на одному моменті.

Зображення відправляється методом POST. Відправляється файл має наступну структуру:

--0123456789
Content-Disposition: form-data; name = "photo"; filename = "image.jpg"
Content-Type: image / jpeg
--0123456789

де 0123456789 - Boundary: якась послідовність символів. Так само необхідно встановити HTTP заголовки Content-Type і Content-Length.

Так як в 1С немає методів для роботи з двійковими файлами був придуманий наступний спосіб. Формуються 2 текстовий файлу: з початком кінцевим файлу:

--0123456789
Content-Disposition: form-data; name = "photo"; filename = "image.jpg"
Content-Type: image / jpeg

і закінченням

--0123456789

Разом виходить 3 файлу:

1. текстовий файл з початком
2. саме зображення
3. текстовий файл із закінченням

Використовуючи метод "Об'едінітьФайли" з'єднуємо 3 файлу в один і відправляємо вже отриманий файл.

Нижче наведено код демонструє відправку файлу.

ІмяВходногоФайла = ПолучітьІмяВременногоФайла ( "in"); ІмяВходногоФайла1 = ПолучітьІмяВременногоФайла ( "in1"); ІмяВходногоФайла2 = ПолучітьІмяВременногоФайла ( "in2"); ІмяВходногоФайла3 = ПолучітьІмяВременногоФайла ( "in2"); ІмяВиходногоФайла = ПолучітьІмяВременногоФайла ( "out"); Boundary = СтрЗаменіть (Рядок (Новий УнікальнийІдентіфікатор ()), "-", ""); ВходнойФайл = Новий ЗапісьТекста (ІмяВходногоФайла1, КодіровкаТекста.ANSI, Сімволи.ПС); ВходнойФайл.ЗапісатьСтроку ( "-" + Boundary); ВходнойФайл.ЗапісатьСтроку ( "Content-Disposition: form-data; name =" "photo" "; filename =" "image.jpg" ""); ВходнойФайл.ЗапісатьСтроку ( "Content-Type: image / jpeg"); ВходнойФайл.ЗапісатьСтроку ( ""); ВходнойФайл.Закрить (); Ізображеніе.Запісать (ІмяВходногоФайла2); ВходнойФайл = Новий ЗапісьТекста (ІмяВходногоФайла3, КодіровкаТекста.ANSI, Сімволи.ПС); ВходнойФайл.ЗапісатьСтроку ( ""); ВходнойФайл.ЗапісатьСтроку ( "-" + Boundary); ВходнойФайл.Закрить (); МассівФайлов = Новий Масив; МассівФайлов.Добавіть (ІмяВходногоФайла1); МассівФайлов.Добавіть (ІмяВходногоФайла2); МассівФайлов.Добавіть (ІмяВходногоФайла3); Об'едінітьФайли (МассівФайлов, ІмяВходногоФайла); ФайлОтправкі = Новий Файл (ІмяВходногоФайла); РазмерФайлаОтправкі = XMLСтрока (ФайлОтправкі.Размер ()); ЗаголовокHTTP = Новий Відповідність; ЗаголовокHTTP.Вставіть ( "Content-Type", "multipart / form-data; boundary =" + Boundary); ЗаголовокHTTP.Вставіть ( "Content-Length", РазмерФайлаОтправкі); З'єднання = Новий HTTPСоедіненіе (АдресЗагрузкі); Соедіненіе.ОтправітьДляОбработкі (ІмяВходногоФайла, АдресРесурса, ІмяВиходногоФайла, ЗаголовокHTTP);

Прикріплення карти до повідомлення на стіні.

У поточній реалізації API відсутня можливість прикріплення карти до повідомлення. Що буває не дуже зручно. Наприклад, якщо в повідомленні йдеться про якийсь проведеної акції, то добре б було до нього прикріпити картку з місцем проведення акції. Дане завдання було вирішене мною таким чином: зверненням до Google Maps API виходить зображення карти, а потім воно буде приєднано до повідомлення як звичайна картина.

Для того, щоб отримати зображення карти з потрібним місцем необхідно відправити запит на адресу

http://maps.google.com/ maps / api / staticmap? center = LAT, LONG & zoom = 14 & size = 320x100 & maptype = roadmap & markers = color: red% 7Ccolor: red% 7Clabel: C% 7C LAT, LONG & sensor = false

де LAT і LONG географічні координати місця. Опис інших параметрів можна знайти в описі Google Maps API. Скажу лише, що наведені в даному прикладі на мою думку є оптимальними і їх можна не міняти. У відповідь приходить зображення карти.

Нижче наведено приклад використання.

// після виконання виклику в цьому файлі буде зображення з картою ІмяФайлаКарти = ПолучітьІмяВременногоФайла ( "jpg"); З'єднання = Новий HTTPСоедіненіе ( "maps.google.com"); Соедіненіе.Получіть ( "maps / api / staticmap? Center =" + lat + "," + long + "& zoom = 14 & size = 320x100 & maptype = roadmap" + "& markers = color: red% 7Ccolor: red% 7Clabel: C% 7C" + lat + "," + long + "& sensor = false", ІмяФайлаКарти);

Демонстраційна конфігурація.

Для демонстрації роботи з API і більш кращого розуміння всього вищесказаного була створена демонстраційна конфігурація. У цій конфігурації реалізований механізм авторизації та надіслати повідомлення на стіну з можливістю прикріплення зображення. Крім того, в конфігурації існує загальний модуль "РаботаССайтомВКонтакте" в якому реалізовані готові виклики наступних методів API у вигляді відповідних процедур і функцій 1С:

  • розміщення і видалення записів на стіні;
  • додавання, читання і видалення коментарів до записів;
  • робота з рекламою - отримання списку рекламних кабінетів, робота з рекламними кампаніями і рекламними оголошеннями (створення, зміна та видалення);
  • робота зі списком пользоваталей і отримання інформації про них;
  • робота з географічними місцями;
  • розміщення фотографій.

тобто, наприклад, щоб отримати інформацію про користувачів можна скористатися наступним кодом

РаботаССайтомВКонтакте.ПолучітьІнформаціюОПользователях ( "a1dfc7ef2b763d776350375f8a22678a59f28e1ac7e090b4a8486274564d38e9e8a069d10e596223d80d7", "5184504");

перший параметр access_token, другий - id користувача.

Значенням функцій є Структура або масив структур в завімості від формату відповіді сервера. Ключами структури є параметри повертаються у відповіді сервером. Наведений нижче приклад демонструє висновок імен користувачів з ID 123456 і 654321.

ДанниеОПользователях = ПолучітьІнформаціюОПользователях (access_token, "+123456,654321"); Для кожного ДанниеОПользователе З ДанниеОПользователях Цикл Повідомити ( "Ім'я користувача" + ДанниеОПользователе.uid + "-" + ДанниеОПользователе.first_name); КонецЦікла;

Використовуючи написану вище інформації, документацію розробника ВКонтакте і приклади з демостраціонной конфігурації можна досить просто додати відсутній функціонал.

Загальний модуль "РаботаССайтомВКонтакте" і обробку "АвторізаціяНаСайте" можна як є перенести в робочу конфігурацію і почати використовувати API ВКонтакте.

Демонстраційна база працює як в режимі керованих форм так і в звичайному додатку.

Примітка.

Код демонстраційної конфігурації може використовуватися в інших розробках без будь-яких органичений.

Com/editapp?
Com/authorize?
Com/authorize?
Xml?
Xml?
Com/ maps / api / staticmap?
Quot;maps / api / staticmap?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: