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




В статье представлен обзор работы с API ВКонтакте из 1С. А так же рассматривается демонстрационная конфигурация по работе с API.

Создание приложения «ВКонтакте».

Прежде чем приступить к работае с 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 (следует заметить что используется HTTPS соединение).

Процедура ВызватьМетод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=320×100&maptype=roadmap&markers=color:red%7Ccolor:red%7Clabel:C%7CLAT,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 ВКонтакте.

Демонстрационная база работает как в режиме управляемых форм так и в обычном приложении.

Примечание.

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

40 Comments

  1. Yashazz

    Класс! Обожаю задачки подобной интеграции, спасибо!

    И вопрос из серии «некогда самому глянуть» — где-инбудь нормальное описание API там есть?

    Reply
  2. lamelioss

    автору +, тема интересна =)

    Reply
  3. Elisy

    Не смотрели Facebook на тему создания приложений? Можно ли из FB загружать список друзей с телефонами в 1С и отправлять сообщения пользователям?

    Reply
  4. musatov1c.ru

    Интересно. Спасибо за выкладку. Есть запрос на ведение рекламной деятельности через контакт, которую бы можно было учитывать и обсчитывать. Данная разработка может быть путем решения данной задачи.

    Reply
  5. Boudybuilder

    Интересная обработка.

    Буду качать.

    Раз уж есть эта тема , так давайте ее обсудим поподробнее.

    Имеем 3 самых больших СоцСети: «ОК» , «ВК» и «FB». Ну и Твиттер тут можно вставить с ними в один ряд, так как его используют на всех сайта для размещения постов.

    Самое наверное интересное для меня было бы — так это создать обработку универсальную для всех вышеперечисленных ресурсов.

    Но для чего она нам могла бы быть полезной?! Давайте , кто знает о полезностях взаимодействий сайта или 1С с даными сетями , пишите сюда. Не ленитьсь.

    Мне кажется , что самое главное — это посты! Выкласть информацию с фоткой на стенку группы , чтобы все ее учасники могли увидеть.

    Второе , это сбор контактной информации учасников ,если таковое возможно и предусмотрено АРІ.

    Дальше что может быть?

    Reply
  6. 3762515

    (5) Boudybuilder, а что за соцсеть «ОК»?

    Reply
  7. Yashazz

    (0) Не работает даже попытка получения ключа, т.е. по адресной строке https://oauth.vk.com/authorize итд — говорит, что «не удалось загрузить authorize из oauth.vk.com, и всё. Что неправильно?

    Reply
  8. Vix

    вошли на сайт, а выход с него как организовать?

    Reply
  9. Boudybuilder

    Кто знает , какими символами делать перевод строки. А то уже все перепробовали а вкотнакте все одной строчкой на стенке.

    Reply
  10. ltfriend

    (9) Boudybuilder, Перевод строки выполняется обычным способом. Только нужно сообщение кодировать в кодировке URL (urlencode). В предоставленной демо конфигурации можно сделать следующим образом:

    ТекстСообщения = РаботаСВнешнимВебСервером.URLEncode(ТекстСообщения);
    Reply
  11. jobkostya1c8

    Запомню. Довольно интересная разработка.

    Reply
  12. vladnet

    Спасибо за разработку!

    В функции:

    Функция СформироватьСтрокуПараметровЗапроса(Параметры, access_token)

    Надо проверять на тип число:

    СтрокаПараметров = СтрокаПараметров + Параметр.Ключ + «=» + ?(ТипЗнч(Параметр.Значение)=Тип(«Число»), Формат(Параметр.Значение, «ЧГ=0»), Параметр.Значение) + «&»;

    Reply
  13. Midasu

    Не могу разобраться с загрузкой изображения.

    Не пойму что должно быть в АдресЗагрузки и АдресРесурса.

    Конкретно нужно установить картинку конференции в переписках.

    Методы photos.getChatUploadServer и messages.setChatPhoto описаны в api, но как они с файлами взаимодействуют мне не ясно.

    В первом методе получаю upload_url, а как туда фото загрузить не ясно, ибо во втором методе его нужно установить.

    UPD: А что за Изображение.Записать(…)? Изображение — реквизит типа Картинка? Но зачем оно?

    Reply
  14. s3nsay

    Ребята скиньте у кого есть эта конфигурация на почту leonov_den89@mail.ru, а то средств не хватает на загрузку.

    Reply
  15. dj_serega

    «Так как в 1С нет методов для работы с двоичными файлами был придуман следующий способ.»

    уже в планах 🙂 так что планируйте дорабатывать публикацию 🙂

    http://v8.1c.ru/o7/201602bin/index.htm

    Reply
  16. NewLifeMan

    (6) ОК — Одноклассники))

    Reply
  17. Xershi

    Дополнил конфигурацию справочником всех прав, для получения токена, но автоматическое получение крашит приложение.

    У меня авторизация двухфакторная. но через браузер легко получил.

    Еще хотел узнать как понять какое апи использую, у них в новых версиях параметры у методов другие, но версию же я не задавал или тут нужно платформу сайта смотреть?

    Reply
  18. Xershi

    (17) Xershi, сам разобрался. При формировании начального запроса они добавили опционально версию апи, сейчас это

    &v=5.57

    Плюс перешли на шифрованное соединение и поменяли формат прикрепляемых фоток. Изучив их апи все стало на свои места!

    Спасибо за реализацию формирования и парсилки запроса!

    Reply
  19. KRaSH13

    (18) Xershi,

    Сервер = «api.vk.com»;

    Ресурс = СтрШаблон(«%1/method/messages.send?user_id=%2&message=%3&access_token=%4&v=5.57», Сервер, IDАккаунта, Сообщение, Токен);

    Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());

    Запрос = Новый HTTPЗапрос(Ресурс);

    Ответ = Соединение.Получить(Запрос);

    СообщитьПользователю(Строка(Ответ.КодСостояния));

    Остальные параметры тоже есть, токен получен. Ответ на запрос постоянно «404», что бы ни делал. Не пойму в чем проблема, бьюсь 3й час.

    Reply
  20. Xershi

    (19) KRaSH13, у него там метод подключения через ком идет. Я только добавил букву s к отсечению! Так что качай конфу и смотри код.

    Reply
  21. ltfriend

    (19) KRaSH13, Зачем вы в «Ресурс» добавляете адрес сервера?

    Нужно так

    Ресурс = СтрШаблон(«method/messages.send?user_id=%2&message=%3&access_token=%4&v=5.57», IDАккаунта, Сообщение, Токен);

    Reply
  22. capitan

    Автор красавчик )

    Функция ЗагрузитьФотографиюНаСтену(access_token, uid=»», gid=»», Изображение) Экспорт

    АдресЗагрузки = СтрЗаменить(РаботаССайтомВКонтакте.ПолучитьАдресДляЗагрузкиФотографийНаСтену(access_token, uid, gid), «http://», «»);

    АдресЗагрузки = СтрЗаменить(РаботаССайтомВКонтакте.ПолучитьАдресДляЗагрузкиФотографийНаСтену(access_token, uid, gid), «https://», «»);

    Reply
  23. ltfriend

    (22) capitan, Ну так, стараюсь ))

    Reply
  24. seva1405

    А в этой конфигурации только как загружать фото или есть пример скачивания на диск новостей с картинками?

    Reply
  25. a2kat

    Уважаемые форумчане! Перешлите на kg.og@mail.ru конфигурацию работы с API VK please!

    Reply
  26. Serega-artem

    Автору огромное спасибо, пригодилось!

    Мои пять копеек. Если при загрузке фото на сервер возвращается:

    <html> <head><title>301 Moved Permanently</title></head> <body bgcolor=»white»> <center><h1>301 Moved Permanently</h1></center> <hr><center> Apache </center> </body> </html>

    То вместо

    Новый HTTPСоединение(АдресЗагрузки)

    Пишем:

    ssl4 = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено );
    Соединение = Новый HTTPСоединение(АдресЗагрузки,,,,,,ssl4)
    Reply
  27. Santa4527

    Может кто то сталкивался при выгрузки на стену изображения ошибка

    Ошибка при загрузке изображения на стену: {ОбщийМодуль.РаботаССайтомВКонтакте.Модуль(1529)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет: Couldn’t resolve host name

    8.3.8.1652

    Режим совместимости Версия 8.3.7

    просто текст отправляет в vk

    Reply
  28. ltfriend

    (27) Выложена обновлённая версия демонстрационной конфигурации, где исправлены некоторые ошибки (в том числе и ошибка загрузки изображений).

    Reply
  29. vizgallova

    Очень интересно!

    Reply
  30. kmpok

    Может кому пригодится. Сделал функцию отправки фотографий на сервер с использованием двоичных данных без записи файлов на диск.

    Входящие параметры:

    Изображение = двоичные данные картинки.

    АдресЗагрузкиФото = Адрес, полученный ранее методом photos.getWallUploadServer. Без «https://»

    Функция ВыполнитьОтправкуФото(Изображение, АдресЗагрузкиФото)
    
    Boundary   = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), «-«, «»);
    
    Тело   = Новый ПотокВПамяти();
    ЗаписьДанных = Новый ЗаписьДанных(Тело,КодировкаТекста.ANSI);
    ЗаписьДанных.ЗаписатьСтроку(«—«+Boundary);
    ЗаписьДанных.ЗаписатьСтроку(«Content-Disposition: form-data; name=»»photo»»; filename=»»photo.jpeg»»»);
    ЗаписьДанных.ЗаписатьСтроку(«Content-Type: image/jpeg»);
    ЗаписьДанных.ЗаписатьСтроку(«»);
    ЗаписьДанных.Записать(Изображение);
    ЗаписьДанных.ЗаписатьСтроку(«»);
    ЗаписьДанных.ЗаписатьСтроку(«—«+Boundary);
    
    ДвоичныеДанныеДляОтправки = Тело.ЗакрытьИПолучитьДвоичныеДанные();
    
    ЗаголовокHTTP = Новый Соответствие;
    ЗаголовокHTTP.Вставить(«Content-Type», «multipart/form-data; boundary=»+Boundary);
    ЗаголовокHTTP.Вставить(«Content-Length», XMLСтрока(ДвоичныеДанныеДляОтправки.Размер()));
    
    НТТР = Новый HTTPСоединение(АдресЗагрузкиФото,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
    
    ЗапросHTTP      = Новый HTTPЗапрос(«»,ЗаголовокHTTP);
    ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеДляОтправки);
    
    ОтветHTTP       = НТТР.ОтправитьДляОбработки(ЗапросHTTP);
    
    СтрокаJSON    = ОтветHTTP.ПолучитьТелоКакСтроку();
    ЧтениеJSON    = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
    
    ПараметрыОтвета = ПрочитатьJSON(ЧтениеJSON);
    
    Возврат ПараметрыОтвета;
    
    КонецФункции 

    Показать

    Reply
  31. kmpok

    Как реализовать отправку смайлов в сообщении? кто-нибудь сталкивался?

    Дело в том, что символьные коды смайлом идут с &, а данный символ используется при перечислении параметров.В результате чего логика строки запроса нарушается.

    Reply
  32. Gang031

    А что делать, если вк потребует ввод капчи? если много сообщений допустим отправляешь, то может потребовать

    Reply
  33. Luck_DMST

    Спасибо огромное, очень выручили!

    Reply
  34. r0m1n

    У кого выходит ошибка что-то типа «v version is required» — теперь в запросе необходимо явно указывать номер версии API ВК (https://vk.com/dev/version_update), поэтому добавляем соответствующий параметр при вызове любого метода ВК.

    Reply
  35. Serega-artem

    (34) Золотой Вы человек! Спасибо большое, полчаса мозг ломал. Немного конкретизирую:

    В процедуре СформироватьСтрокуПараметровЗапроса(Параметры, access_token)

    Находим строку

    СтрокаПараметров = СтрокаПараметров + «access_token=» + access_token»;

    И приводим её к такому виду:

    СтрокаПараметров = СтрокаПараметров + «access_token=» + access_token+»&v=5.73″;

    Где 5.73 — версия API

    Reply
  36. Wrols
    Reply
  37. user1137665

    Ребята подскажите что я делаю не так??. не удается выгрузить запись на стену

    Reply
  38. echo77

    У меня ошибка еще при авторизации: не удалось скачать authorize из oauth.vk.com

    Это про что вообще?

    Reply
  39. megaZ

    На платформе 8.3.15.1700 не работает. Подозреваю, что связано с тем, что код писался еще под платформу, где использовался IE в качестве браузера, а с недавних пор платформа использует Webkit.

    Переход по ссылке таким образом «Элементы.HTMLСтраница.Документ.location.href = » не работает, переделал на «HTMLСтраница = «. Далее некорректно ведет себя браузер после загрузки страницы (Процедура HTMLСтраницаДокументСформирован). В Элемент.Документ.location.href лежит просто «https://api.vk.com/blank.html» без параметров, соответственно в Элемент.Документ.location.hash пусто.

    Reply
  40. megaZ

    (40) А нет, на 8.3.13, где уже WebKit все работает. Видимо просто баг платформы 8.3.15.1700

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *