Я пытаюсь получить следующее: В магазине Magento 2 я хочу, чтобы под каждым продуктом был уголок социальных сетей. Для FB это все выяснили до сих пор. То, что я точно хочу иметь, это кнопка «Поделиться / Твитнуть», которая делит URL продукта, изображение продукта, предопределенный текст (из бэкэнда), предопределенные хэштеги (из бэкэнда) и предопределенный через (из бэкэнда). Я дошел до того, что могу делать все, кроме изображения, используя javascript: #
define([
'jquery',
'underscore'
], function ($, _) {
'use strict';
$.widget('xxx.shareTW', {
options: {
quote: null,
hashtags: null,
via : null
},
_create: function(){
var self = this;
twttr.widgets.createShareButton(
'/',
document.getElementById('twShareBtn'),
{
count: 'none',
text: this.options.quote,
hashtags: this.options.hashtags,
via: this.options.via
}).then(function (el) {
console.log("Button created.")
});
}
}
);
return $.xxxx.shareTW;
});
Это позволяет мне передавать все, что мне нужно, но, конечно, не показывает изображение. Итак, я прочитал о Twitter-картах и о том, что они создаются автоматически, когда ссылка предоставляется из метатегов. Таким образом, мои мета-теги выглядят так:
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@xxx" />
<meta name="twitter:creator" content="@xxx" />
<meta property="og:type" content="product" />
<meta property="og:title" content="<?= $block->escapeHtmlAttr($block->stripTags($block->getProduct()->getName())) ?>" />
<meta property="og:site_name" content="<?= $block->escapeUrl($block->getProduct()->getName()) ?>" />
<meta property="og:image" content="<?= $block->escapeUrl($block->getImage($block->getProduct(), 'product_base_image')->getImageUrl()) ?>" />
<meta property="og:description" content="<?= $block->escapeHtmlAttr($block->stripTags($block->getProduct()->getShortDescription())) ?>" />
<meta property="og:url" content="<?= $block->escapeUrl($block->getProduct()->getProductUrl()) ?>" />
<?php if ($priceAmount = $block->getProduct()->getPriceInfo()->getPrice(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)->getAmount()):?>
Вещь - это шоу, посвященное Карте. У меня есть стандартный robots.txt, настроенный в Backend, кстати. Следующим шагом было погружение в Twitter API для POST. Эта вещь чертовски смущает меня. Я не могу сказать, как я могу заставить все это работать. Особенно какие ключи / токены мне нужны для этого, какие аутентификации? (1.0a 2 премиум все что угодно). Я даже не знаю, будет ли это правильным способом. Я имею в виду, что когда я размещаю это сообщение, у меня не появляется всплывающее окно, где я могу выбрать, ЕСЛИ я хочу поделиться этим в любом случае (представьте, что клиент нажимает кнопку твита). Так что я думаю, что я должен сделать это самостоятельно. Я как бы потерялся прямо сейчас и хотел бы посоветовать, как подойти к этой проблеме. Я довольно новичок в Magento и php. Я думаю, у меня просто огромное недоразумение о том, как все работает. Я был бы очень рад, если бы кто-нибудь дал мне подсказку в правильном направлении. (Весь API делает c из твиттера, и их разные процессы аутентификации слишком запутанны) Спасибо, заранее!