Jump to content
  • 0

API vk


3d_max_9
 Share

Question

Всем добра столкнулся с такой проблемой. 
Нужно подключить виджет vk "Мне нравится" 
то есть на страничке их будет много для каждого товара свой.
пока делаю так:
js class

function VKApiLike(option){    this.option = $.extend({        apiId: '',        postId: '',        postDivId: '',        widthButtonLike: 210,        heightButtonLike: 18,        pageTitleLike: '',        pageDescriptionLike: '',        type: 'full',        pageUrl: '',        pageImage: '',        verb: 0,        onlyWidgets: true,        addButtonLike: 'tooltip-like',        likePost: 'actionBox'    },option);    this.vkInit = function(){        VK.init({            apiId: XXXXX,            onlyWidgets: true        });    };    this.addWidget = function(){        var self = this;        VK.Widgets.Like(self.option.postDivId,                {                    width: self.option.widthButtonLike,                    height: self.option.heightButtonLike,                    type: self.option.type,                    pageTitle: self.option.pageTitleLike,                    pageDescription: self.option.pageDescriptionLike,                    pageUrl: self.option.pageUrl,                    pageImage: self.option.pageImage,                    verb: self.option.verb                }, self.option.postId);    };    this.addLikePost = function(id) {        var self = this;        VK.Observer.subscribe("widgets.like.liked", function f(e)        {            console.log(id);        });    };    this.init = function(){        this.vkInit();        this.addWidget();        return this;    };    return this;

инициализация самого виджета мне нравиться

 var vkLike_1 = new VKApiLike({            postDivId: 'vk_like',            width: 210,            height: 24,            type: 'button',            pageTitle: 'Brand 2',            pageDescription: 'Brand 2 description',            pageUrl: 'http://test.test.com/1',            pageImage: '/resources/images/test1.png',            verb: 1,            postId: 321        }).init();       vkLike_1.addLikePost('321');var vkLike_2 = new VKApiLike({        postDivId: 'vk_like2',        width: 210,        height: 24,        type: 'full',        pageTitle: 'Brand 2',        pageDescription: 'Brand 2 description',        pageUrl: 'http://test.test.com/2',        pageImage: '/resources/images/test2.png',        verb: 0,        postId: 322    }).init();    vkLike_2.addLikePost('322');.........

если человек лайкнул наступает событие "widgets.like.liked" но это событие срабатывает для всех виджетов на странице

this.addLikePost = function(id) {        var self = this;        VK.Observer.subscribe("widgets.like.liked", function f(e)        {            console.log(id);        });    };

Вопрос вот в чем. 

Как мне отследить какой именно товар лайкнул юзер, (ккаой postId)?

в event приходит только количество лайков. 

 

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Сам подобными вещами не занимался, но может стоит так же передавать url товара, по которому лайкнули? Или если в url'e присутствует id товара, то достать именно его.

Link to comment
Share on other sites

  • 0

Что только не пробовал передавать. Всегда возвращается количество лайков той кнопки по которой кликнули. Но невозможно понять какую именно кликнули ) 

и клик отследить не могу так как эта кнопка выводиться через iframe.

Юзать подобные методы не могу так как это доступно только для Standalone-приложениям

VK.Api.call("likes.add",            {              /*параметры*/            },            function(post_data) {                if (post_data.response) {                    self.sendAjaxPost(post_data.response.post_id,ob);                }            }        );
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By KatiaBeing
      Подскажите пожалуйста, как правильно сделать кастомный список стран используя API.
      Вот fetch код:
       
      const countryList = document.querySelector('.form-list.country'); fetch('https://restcountries.com/v3.1/all').then(res => { return res.json(); }).then(data => { let output = ''; data.forEach(country => { output += `<li class="form-item" data-value="${country.name.common}">${country.name.common}</li>`; countryList.innerHTML = output; }); }).catch(err => { console.log(err); }); полный код html, css, js Во втором списке "Country" список формируется, но название страны не поставляется в форму, а атрибут "data-value="" " в инпут ниже. В первом списке "Guests Amount" все ок, т.к. данные прописаны в html. Нужен такой же, но со странами.
      Сразу скажу, с тегом select все работает, но мне нужна стилизованная выпадашка. Заранее спасибо.
    • By .Meowmere
      Как убрать лишний отступ в сообщении вк? Мне нужно, чтоб ширина была в зависимости от текста (сообщении).

      Проверьте в кодах элемента как это сделать, я не понимаю..
      P.S. Я работаю с Stylish (темы для сайтов), хочу сделать мессенджер, как в телефоне, но этот отступ все портит..
       
    • By Eugen2k
      Доброго времени суток!
      Суть проекта: очень кратко: что-то вроде аггрегатора хостинг провайдеров. На самом деле это только звучит не особо, но по факту все намного интересней. Проект готов на 20-25%. В команде есть сильный и опытный back-end разработчик, дизайнер и маркетолог-идеолог  Но у нас демократия: каждый делится своими мыслями как сделать продукт лучше.
      Есть потенциальные клиенты, которые готовы опробовать продукт и в дальнейшем им пользоваться, покупая ежемесячную подписку.
      Главная задача: выход на минимально живой продукт. Как только мы выйдем на MVP будет понятно насколько проект коммерчески успешен или неуспешен.
      В случае успеха (когда продажи пойдут) начинаем этап привлечения инвестиций. Кандидаты-инвесторы есть.
      В случае провала - расходимся и каждый может использовать проект в качестве портфолио, так как при любом исходе им будут пользоваться.
      Кого ищем: front-end разработчик с опытом работы с:
      - React (Redux)
      - Django
      - RESTApi
      - SASS
      - Git
      Желателен опыт работы от 2-3 лет и возможность посвящать проекту хотя бы 10-12 часов в неделю.
      Условия работы:
      - доля в компании 5-10%
      - доля в компании менее 5%, но с оплатой, небольшой, так как мы еще только проверяем гипотезу и платить будем из своего кармана.
      Этот проект может быть интересен тем, кто хочет влиться в интересный проект, возглавить его и научиться чему-то новому или просто взять долю и получать с нее доход, либо продать.
      Также, тем, кому нужно интересное портфолио.
      Если есть интерес, прошу свяжитесь со мной: https://t.me/Eugen2k
    • By NOCaut
      Стала задача написать отправку писем всем контактам скайпа.
      нашел библиотеку Skype4COM. Письмо в скайп отправляется на половину, оно появляется у меня в отправленных, но светится серым, как будто готовится к отправки
       
       
    • By WhatIsHTML
      Привет всем. У меня проблемы с простой задачей.

      Есть одностраничный сайт. Пользователь нажимает на ссылку меню, которая обрабатывается функцией Js. Эта функция асинхронно загружает содержимое страницы и изменяет URL с помощью history.pushState ().
      Например было "example.com" => после клика "example.com/page1"

      Затем пользователь обновляет страницу, но такого файла, не существует на сервере.
      Как решить эту проблему?

      Вот пример
      Вот страница с пояснениями, но примера обработки обновления страницы там нет.  У них в примере, после обновления открывается страница с тем же контентом, что было до перезагрузки и с тем же url.
      Говорят, что нужно решать как-то с помощью php, но я затрудняюсь.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy